2012-04-18 17 views
6

Tengo dos teléfonos Galaxy Nexus. Los teléfonos tienen la misma versión de firmware 4.0.2, el mismo número de compilación, la misma versión de kernel. Cuando despliego la misma aplicación exacta en ambos teléfonos usando Eclipse, veo comportamientos diferentes de cada uno.Error al buscar la ventana: comportamientos diferentes desde la misma aplicación en 2 galaxy nexus

En un teléfono, todo funciona como se esperaba. En el otro teléfono, la Actividad principal falla al cambiar a otra actividad y volver a la principal, tanto por el botón Atrás como por otras actividades que terminan y vuelven a la actividad que lo creó. La única pista que tengo a este problema es el siguiente error:

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) 

realmente no he encontrado nada útil en la Internet relacionados con este mensaje de error. Tengo cierta experiencia con Android, pero esta me ha dejado perplejo. Inicialmente pensé que se trataba de un problema de iniciador nova (el teléfono con el problema lo tiene), pero instalé nova en el otro teléfono y aún vi los mismos comportamientos.

El teléfono con la aplicación que no funciona correctamente es mi teléfono personal, el otro es un teléfono de trabajo.

+0

¿Cuál es la actividad principal que está fuera de lo común? – CommonsWare

+0

Realizo la misma actividad en ambos teléfonos, nada fuera de lo común, dibujar una aplicación de mapas y consultar datos sobre un área específica. – ejo4041

+0

quizás tengas otra personalización en el teléfono en lugar de solo el iniciador nova, para probar esto tendrías que restablecer el teléfono al estado predeterminado, por supuesto. – Raykud

Respuesta

0

Acabo de descubrir por qué cada actividad muere. En Configuración> Opciones de desarrollador, hay una casilla de verificación llamada "No guardar actividades". "Destruya todas las actividades tan pronto como el usuario se vaya". La caja fue marcada. Simplemente lo desactivé. Eso lo explica todo.

+1

Esto plantea la pregunta de cuál es el beneficio de esa opción de desarrollador. ¿Apagarlo significa que algunas instancias en las que la actividad podría fallecer (poca memoria) no se ha probado y, por lo tanto, no se ha contabilizado? –

+9

@AndrewS: es importante que su aplicación sea robusta en condiciones de poca memoria. Tener esa opción habilitada simula una limpieza agresiva por parte del sistema operativo. – Mark

+1

Sí, es una configuración muy útil. Se asegura de que sus actividades no dependan entre sí. Nunca suponga que la actividad debajo de otra está viva. No confíe en los objetos de memoria para reanudar los estados. Guarde datos en almacenamiento permanente y estado de UI en paquetes. – tdevaux

1

El problema me ha sucedido después de cambiar las variantes de compilación. Algo puede estar enredado con tu construcción. Intenta reiniciar Android Studio, limpiar y reconstruir. Eso resolvió el problema para mí.

¡Buena suerte!

Cuestiones relacionadas