Android-Entwicklung: "Thread mit nicht abgefangener Exception beenden"

8

Ich versuche, meine erste Android-App (ein Spiel) zu erstellen, aber ich habe einige Schwierigkeiten, damit anzufangen.

Wenn ich meinen Code ausführe, erhalte ich dieses Fehlerprotokoll:

%Vor%

Ich denke, das Problem ist dieser "Thread mit nicht abgefangener Exception" Teil, ich habe keine Ahnung, was die Ausnahme sein könnte oder was sie verursacht.

Hier ist mein Code:

NMGView.java:     Paket com.stickfigs.NMG;

%Vor%

NMG.java:

%Vor%

UPDATE: Hier ist meine R.java und nmg_layout.xml:

R.java:     Paket com.stickfigs.nmg;

%Vor%

nmg_layout.xml:

%Vor%     
Kyle V. 25.05.2011, 02:57
quelle

3 Antworten

16

Wenn Sie durch die Stack-Kurve schauen, sehen Sie eine "Caused by ..." -Zeile (manchmal mehr als eine). Der letzte von diesen ist der wichtige. Es besagt, dass in Zeile 32 von NMG.java eine Nullzeiger-Ausnahme vorlag. Diese Zeile und die Zeile davor sind:

%Vor%

Offensichtlich ist keine Ansicht mit der ID R.id.nmg im Layout R.layout.nmg_layout . Das ist, was dein Problem verursacht.

    
Ted Hopp 25.05.2011, 03:04
quelle
1

In Ihrer XML-Datei existiert R.id.nmg . Ich denke also, dass das Problem dadurch verursacht wird, dass das Objekt NMGView von der Ressource aufgebläht wird. Sie sollten Ihren NMGView Quellcode überprüfen, besonders in seinem Konstruktor.

    
Micheal.zu 25.05.2011 03:26
quelle
0

Dieses Problem tritt auf, weil die SurfaceView onDraw () -Methode meistens ausgeführt wird, wenn Sie die Oberflächenansicht zerstören. Dann erhalten Sie einen NULLPUNKTFEHLER, weil die Leinwand zu diesem Zeitpunkt noch nicht existiert. Ich habe dieses Problem behoben, bei dem alle Zeichen mit der NullPointerException abgefangen wurden:

%Vor%

Wenn Sie onPause (), onDestroy () Methoden in Ihrer Hauptaktivität implementieren, erhalten Sie die folgende Reihenfolge: zuerst: E / onPause: ON PAUSE - & gt; nächste E / surfaceDestroyed: OBERFLÄCHE ZERSTÖRT - & gt; E / NULL-POINTER-AUSNAHME: Canvas NULL POINTER - & gt; endlich E / onDestroy: EIN ZERSTÖREN

Dies ist die von mir verwendete Methode der obsoleteZerstörung:

%Vor%     
user5807327 14.02.2016 17:58
quelle

Tags und Links