Hi ich habe 1 Activity 1nen Thread und 1 Surface View wenn ein Button gedrückt wird wird in der Activity der contentView auf das Surface View gesetzt und in dem Surface View wird der Thread gestartet.
Jetzt kommt immer wenn ich die app beende : "Unfortunately, myapp has stopped" ich bin relativ neu in app Programmierung (und insgesamt in Programmierung)und finde den Fehler nicht.Kann es sein das wenn Die Activity zerstört wird der Thread versucht weiter zu laufen weil er nicht gestoppt wird und es dann irgendwie zu einer exception kommt.
Unfortunately, myapp has stopped
-
-
Das alles und noch viel mehr erzählt Dir LogCat in Deiner IDE.
-
also LogCat steht wenn ich die app beende : "the application may do too much work on its main thread"
aber wie kann ich dass verhindern. -
Das bedeutet, dass du irgendwas tust, was den Main Thread für eine gewisse Zeit blockiert (lange Berechnungen o.ä.). Es muss aber im LogCat noch eine genauere Fehlermeldung stehen. Such danach mal oder kopier alle Ausgaben mal hier rein, falls du dir nicht sicher bist.
block_
-
vermutlich eine endlosschleife.
-
ich hab nochmal in LogCat gekugt und hab auch ne NullPointer Exception gefunden(ich kann LogCat Leider nicht hier rein kopieren kp warum)
in LogCat wird die NullPointerException hier angezeigt :
public void run() {
while (isRunning) {
Canvas theCanvas = null;
try {
theCanvas = theView.getHolder().lockCanvas();
synchronized (theView.getHolder()) {
theView.setOnTouchListener(this);
theView.setCanvasWH(theCanvas.getWidth(),
theCanvas.getHeight());
theView.onDraw(theCanvas);
}
}
finally {
if (theCanvas != null) {
theView.getHolder().unlockCanvasAndPost(theCanvas);
}
}
}
}
kann es sein das weil in theView der holder zerstört wurde es bei theCanvas = theView.getHolder().lockCanvas(); die Exception gibt
-
Den kompletten Inhalt einzukopieren ist auch nicht so einfach.
Die gewünschte Zeile auswählen, kopieren und einfügen sollte klappen.Dann bekommst Du auch die genaue Zeile in Deiner Java Datei genannt und kannst besser eingrenzen, wobei es kracht.
Wenn (aus welchen Gründen auch immer) Dein Holder zerstört wurde, ist das durchaus eine Berechtigung für eine Null Pointer Exception.
-
es war der zerstörte holder(wenn ich den Inhalt von LogCat makiere gibt es da keine Option kopieren und ich kann auch nicht ctrl & c machen)
-
Benutz das nächste mal bitte die Quellcode Tags hier im Beitragseditor um deinen Quellcode in deinem Beitrag anzuzeigen
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!