"Window Manager Crash" al enviar la tecla 'Abajo' en el Samsung Galaxy S

Estoy ejecutando mis pruebas de unidad en varios dispositivos android utilizando Instrumentación . Testcases funciona bien en el emulador y todos los dispositivos excepto Samsung Galaxy S. En Samsung Galaxy S se muestra un bloqueo de Windows Manager después de inyectar unos 30 eventos clave utilizando la instrumentación aquí es el registro de accidente completo:

D/dalvikvm(11862): GC_EXPLICIT freed 6800 objects / 374040 bytes in 54ms D/dalvikvm(11862): GC_EXPLICIT freed 780 objects / 71856 bytes in 39ms W/dalvikvm(11862): threadid=9: thread exiting with uncaught exception (group=0x4001d7d0) E/WindowManager( 2472): Window Manager Crash E/WindowManager( 2472): java.lang.NullPointerException E/WindowManager( 2472): at com.android.server.WindowManagerService$KeyWaiter.waitForNextEventTarget(WindowManagerService.java:5844) E/WindowManager( 2472): at com.android.server.WindowManagerService.injectKeyEvent(WindowManagerService.java:5565) E/WindowManager( 2472): at android.view.IWindowManager$Stub.onTransact(IWindowManager.java:110) E/WindowManager( 2472): at com.android.server.WindowManagerService.onTransact(WindowManagerService.java:692) E/WindowManager( 2472): at android.os.Binder.execTransact(Binder.java:288) E/WindowManager( 2472): at dalvik.system.NativeStart.run(Native Method) E/AndroidRuntime(11862): FATAL EXCEPTION: Instr: com.myapp.test.ImpInstrumentation E/AndroidRuntime(11862): java.lang.NullPointerException E/AndroidRuntime(11862): at android.os.Parcel.readException(Parcel.java:1266) E/AndroidRuntime(11862): at android.os.Parcel.readException(Parcel.java:1248) E/AndroidRuntime(11862): at android.view.IWindowManager$Stub$Proxy.injectKeyEvent(IWindowManager.java:830) E/AndroidRuntime(11862): at android.app.Instrumentation.sendKeySync(Instrumentation.java:859) E/AndroidRuntime(11862): at android.app.Instrumentation.sendKeyDownUpSync(Instrumentation.java:872) E/AndroidRuntime(11862): at com.myapp.test.util.ListUtil.<b>arrowDownToPosition</b>(ListUtil.java:69) 

Y aquí está el pedazo de código donde generalmente se estrella:

  private void arrowDownToPosition(int position) { int maxDowns = 50; while(mListView.getSelectedItemPosition() < position && --maxDowns > 0) { mInstrumentation.sendKeyDownUpSync(KeyEvent.KEYCODE_DPAD_DOWN); } //Crashes on below line dispatching enter key mInstrumentation.sendKeyDownUpSync(KeyEvent.KEYCODE_ENTER); } 

Todas las soluciones / sugerencias son bienvenidas.

No estoy seguro si esto ayuda, pero mientras investigaba brevemente este problema, encontré esta fuente . Echa un vistazo, especialmente desde la línea 175 sobre un error con DPAD_CENTER en el Galaxy S, y cómo se resuelve el problema.

De acuerdo con su stacktrace parece que su variable mInstrumentation es null. ¿Olvidaste de inicializarlo?

prueba esto:

 while(mInstrumentation!=null && mListView.getSelectedItemPosition()>-1) { mInstrumentation.sendKeyDownUpSync(KeyEvent.KEYCODE_DPAD_DOWN); } 
  • ¿Cómo la aplicación android puede detectar qué tienda lo instaló?
  • Archivos espurios en el directorio de datos de mi aplicación
  • Desactivación nativa de WebView: libwebviewchromium.so "Operación no permitida" - ILL_ILLOPC
  • Acceso de Android para Android 5 dispositivos Samsung
  • Adb no reconoce Samsung Note II y Nota 10.1
  • Teclas de captura digitadas en el teclado virtual android con javascript
  • Hacer que el dispositivo Samsung Android anuncie como iBeacon
  • Typeface.ITALIC no funciona en Galaxy Note 2
  • AlarmManager no funciona como se esperaba en el modo de suspensión en S5 Neo
  • Cualquier solución para Samsung Galaxy ICS 4.0.3 LPQ firmware enviar dos mensajes de texto?
  • Los dispositivos Samsung tienen una versión extraña de Google Play Services y no funciona correctamente
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.