D
didisoft
Neues Mitglied
- 0
Hi Leute!
Ich hab mich auch mal hier angemeldet, da es in keinem anderen Forum solche Profis gibt *SchleimSchleim*
Naja, kommen wir zur Sache:
Hab so ne stink normale App, die nicht geht.
Und zwar wird in meiner onDraw() Methode immer eine NullPointerException verursacht, und zwar immer wenn ich zum Beispiel canvas.drawBitmap oder canvas.drawColor() benutze...
Hier meine onDraw() Methode:
Und hier der Thread (in einer inneren Klasse), in dem ich die onDraw() Methode aufrufe:
theView ist...
ttgv ist eben die View-Klasse. Die gameThread Klasse befindet sich in der View Klasse, und theView wird als globale Variable in der View Klasse deklariert. Den Thread starte ich in dem Konstruktor der View Klasse.
Weiß echt nicht was ich falsch mache... Wegen so einer Kleinigkeit kann man sich nicht um die wichtigen Dinge kümmern
Naja, hoffe einer von euch kann mir da helfen...
Achso und die BitMap ist auch definiert... liegt also nicht daran.
Freu mich schon auf eure Tipps!
LG, David.
Ich hab mich auch mal hier angemeldet, da es in keinem anderen Forum solche Profis gibt *SchleimSchleim*
Naja, kommen wir zur Sache:
Hab so ne stink normale App, die nicht geht.
Und zwar wird in meiner onDraw() Methode immer eine NullPointerException verursacht, und zwar immer wenn ich zum Beispiel canvas.drawBitmap oder canvas.drawColor() benutze...
Hier meine onDraw() Methode:
Code:
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
java.lang.System.out.println("onDraw() wird aufgerufen."); //Um zu sehen pb die Methode überhaupt aufgerufen wird, ja, wird sie.
canvas.drawColor(Color.RED);
density = getResources().getDisplayMetrics().density; //brauch ich eben, sollte hier aber unwichtig sein...
canvas.drawBitmap(teacher, 0, 0, null);
}
Und hier der Thread (in einer inneren Klasse), in dem ich die onDraw() Methode aufrufe:
Code:
public class gameThread implements Runnable {
public gameThread() {
}
@SuppressLint("WrongCall")
@Override
public void run() {
//Testigkeitshalber :D
java.lang.System.out.println("run() wird aufgerufen.");
while (running) {
Canvas theCanvas = null;
try {
theCanvas = theView.getHolder().lockCanvas();
synchronized (theView.getHolder()) {
theView.onDraw(theCanvas);
}
} finally {
if (theCanvas != null) {
theView.getHolder().unlockCanvasAndPost(theCanvas);
}
}
}
}
}
theView ist...
Code:
private ftgv theView;
Weiß echt nicht was ich falsch mache... Wegen so einer Kleinigkeit kann man sich nicht um die wichtigen Dinge kümmern
Naja, hoffe einer von euch kann mir da helfen...
Achso und die BitMap ist auch definiert... liegt also nicht daran.
Freu mich schon auf eure Tipps!
LG, David.