"Etwas nicht hier stimmt hier, hat nicht erwartet, dass ein Paket wieder aufgenommen wird" Fehler in Android Logcat

StackOverflow https://stackoverflow.com/questions/2174865

Frage

Ich habe eine Android -App, die dem modelliert ist LunarLander Beispiel von Google. Ich debuggiere es auf einem echten Gerät ((Motorola Droid) mit Android 2.0. Wenn sich die Orientierung ändert, stürzt das Programm auf a ab NullPointerException. Logcat von kurz vor dem Absturz:

02-01 00:24:27.956: DEBUG/nate(8358): Starting Game
02-01 00:24:36.878: DEBUG/dalvikvm(1086): GC freed 1788 objects / 92256 bytes in 1389ms
02-01 00:24:38.542: INFO/WindowManager(1021): Setting rotation to 1, animFlags=0
02-01 00:24:38.558: INFO/ActivityManager(1021): Config changed: { scale=1.0 imsi=310/4 loc=en_US touch=3 keys=2/1/2 nav=2/2 orien=2 layout=34}
02-01 00:24:38.620: WARN/UsageStats(1021): Something wrong here, didnt expect org.nifong.leeder to be resumed
02-01 00:24:38.886: DEBUG/nate(8358): New Surface dimensions: 854x442
02-01 00:24:38.886: DEBUG/nate(8358): flies was null

Die erste Zeile, die mich beunruhigt, ist "Something wrong here" bei 24:38.620. Ich habe keine Ahnung, was es bedeutet, aber ich denke, es liegt daran, dass ich nicht richtig auf die Bildschirmänderung reagiere.

Als nächstes bekomme ich eine Debug -Nachricht, die ich mich in meiner eigenen Methode gedruckt habe surfaceChanged() über die neuen Oberflächenabmessungen.

Dann drucke ich Debug -Nachricht darüber aus, ob Fliegen waren null. flies ist das Feld, das schließlich das verursacht NullPointerException. Es ist einmal erstellt und für den Rest des Programms nie wieder geschrieben. Ich weiß, dass es vor dem Absturz nicht null war, weil es mehrmals gelesen wurde.

Hat jemand eine Ahnung, wie meine private Mitgliedsvariable nur durch diese Hinweise null ist?

Ich würde Code einfügen, aber es gibt viel davon und ich weiß nicht, was relevant wäre.

War es hilfreich?

Lösung 2

Ich habe es behoben, indem ich diese beiden Zeilen dem Aktivitäts -Tag in meiner Manifest -Datei hinzugefügt habe

android:configChanges="keyboardHidden|orientation"
android:screenOrientation="landscape"

Dies besagt, dass meine Anwendung Tastatur- und Orientierungsänderungen für sich selbst (indem sie nichts tut) umgehen und die ganze Zeit über die Landschaft läuft.

Andere Tipps

Orientierungsänderungen im Android wirken sich auf den Zustand aus. Grundsätzlich wird Ihre Aktivität zerstört und nachgebaut. Sie müssen sich daher bewusst sein, was Android -Lebenszyklus Ereignisse werden angerufen und wie man Zustand rettet.

Sie müssen auch vorsichtig sein static Instanzen und wie sich dies auf diesen Lebenszyklus auswirkt.

Hier ist ein Blog -Beitrag einige davon erklären.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top