2012-04-18 4 views
6

Ich habe zwei Galaxy Nexus-Telefone. Die Telefone haben dieselbe Firmware-Version 4.0.2, dieselbe Build-Nummer, dieselbe Kernel-Version. Wenn ich die gleiche App für beide Telefone mit Eclipse verwende, sehe ich unterschiedliche Verhaltensweisen.Fehler beim Nachschlagen des Fensters - verschiedene Verhaltensweisen von der gleichen App auf 2 Galaxie Nexus

Auf einem Telefon funktioniert alles wie erwartet. Auf dem anderen Telefon stürzt die Hauptaktivität beim Wechsel zu einer anderen Aktivität und zurück zur Hauptaktivität ab, sowohl durch Zurück-Schaltfläche als auch durch andere Aktivitäten, die beendet werden und zu der Aktivität zurückkehren, die sie erstellt hat. Der einzige Hinweis ich für dieses Problem habe, ist dieser Fehler:

04-18 17:43:30.811: I/ActivityManager(207): Displayed org.mitre.Mobile/.Activities.QueryActivity: +430ms 
04-18 17:43:30.819: I/n*.w*.w*.ZoomButtonsCo*(4962): invoke: onVisibilityChanged listener: [email protected] 
04-18 17:43:30.843: E/InputQueue-JNI(4962): channel '41d66628 Panel:org.mitre.Mobile/org.mitre.Mobile.Activities.MobileActivity (client)' ~ Publisher closed input channel or an error occurred. events=0x8 
04-18 17:43:30.843: W/WindowManager(207): Force-removing child win Window{41d66628 Panel:org.mitre.Mobile/org.mitre.Mobile.Activities.MobileActivity paused=false} from container Window{420815c8 org.mitre.Mobile/org.mitre.Mobile.Activities.MobileActivity paused=false} 
04-18 17:43:30.850: W/WindowManager(207): Failed looking up window 
04-18 17:43:30.850: W/WindowManager(207): java.lang.IllegalArgumentException: Requested window [email protected] does not exist 
04-18 17:43:30.850: W/WindowManager(207): at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:7029) 
04-18 17:43:30.850: W/WindowManager(207): at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:7020) 
04-18 17:43:30.850: W/WindowManager(207): at com.android.server.wm.WindowManagerService.removeWindow(WindowManagerService.java:2180) 
04-18 17:43:30.850: W/WindowManager(207): at com.android.server.wm.Session.remove(Session.java:149) 
04-18 17:43:30.850: W/WindowManager(207): at android.view.IWindowSession$Stub.onTransact(IWindowSession.java:124) 
04-18 17:43:30.850: W/WindowManager(207): at com.android.server.wm.Session.onTransact(Session.java:111) 
04-18 17:43:30.850: W/WindowManager(207): at android.os.Binder.execTransact(Binder.java:338) 
04-18 17:43:30.850: W/WindowManager(207): at dalvik.system.NativeStart.run(Native Method) 

Ich habe wirklich nichts Nützliches im Internet zu dieser Fehlermeldung im Zusammenhang gefunden. Ich habe etwas Erfahrung mit Android, aber dieser hat mich wirklich ratlos gemacht. Ich dachte zuerst, dass dies ein Novum-Launcher-Problem ist (das Telefon mit dem Problem hat es), aber ich installierte Nova auf dem anderen Telefon und sah immer noch die gleichen Verhaltensweisen.

Das Telefon mit der App, die nicht richtig funktioniert, ist mein persönliches Telefon, das andere ist ein Arbeitstelefon.

+0

Was ist die Hauptaktivität, die ungewöhnlich ist? – CommonsWare

+0

Ich führe die gleiche Aktivität auf beiden Telefonen aus, nichts Ungewöhnliches, zeichne eine Kartenanwendung und frage nach Daten über einen bestimmten Bereich. – ejo4041

+0

vielleicht haben Sie eine andere Anpassung auf dem Telefon als nur den nova Launcher, um dies zu testen, müssten Sie das Telefon natürlich auf den Standardzustand zurücksetzen. – Raykud

Antwort

0

Gerade herausgefunden, warum jede Aktivität stirbt. Unter Einstellungen> Entwickleroptionen gibt es ein Kontrollkästchen mit dem Titel "Aktivitäten nicht beibehalten" "Jede Aktivität zerstören, sobald der Benutzer sie verlässt". Die Box wurde überprüft. Ich habe es einfach deaktiviert. Das erklärt alles.

+1

Das wirft die Frage auf, was der Vorteil dieser Entwickleroption ist. Bedeutet das Ausschalten das, dass einige Instanzen, in denen die Aktivität möglicherweise beendet wird (wenig Speicher), ungeprüft bleiben und daher nicht erfasst werden. –

+9

@AndrewS - Es ist wichtig, dass Ihre App unter wenig Arbeitsspeicher robust ist. Wenn diese Option aktiviert ist, simuliert dies eine aggressive Säuberung durch das Betriebssystem. – Mark

+1

Ja, es ist eine sehr nützliche Einstellungen. Es stellt sicher, dass Ihre Aktivitäten nicht voneinander abhängen. Niemals davon ausgehen, dass die Aktivität unter einem anderen lebt. Verlassen Sie sich nicht auf Speicherobjekte, um Zustände wiederherzustellen. Speichern Sie Daten im permanenten Speicher- und UI-Status in Bundles. – tdevaux

1

Das Problem ist mir nach dem Wechsel Build-Varianten passiert. Etwas kann mit deinem Build verkehrt sein. Versuchen Sie, Android Studio neu zu starten, zu säubern und neu zu erstellen. Das hat das Problem für mich gelöst.

Viel Glück!

Verwandte Themen