"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:
- Cómo deshabilitar las opciones de desarrollador en samsung galaxy s4?
- Mensajería Firebase - "demasiadas alarmas" en los dispositivos Android de Samsung
- Problema Proguard con SAAgent (accesorio Samsung) java.lang.NoSuchMethodException: <init>
- Detección del navegador Android Phone
- Android HttpRequest resultado en caché durante 10 minutos en dispositivos Samsung Galaxy
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.
- Cómo resolver "versión desconocida de Android en el dispositivo".
- Ocultar error "Tipo de etiqueta NFC no admitido" en los dispositivos Samsung Galaxy
- Android MediaPlayer no se reproduce en Galaxy S6 con Android 5.1.1
- IndexOutOfBoundsException en dispositivos Samsung
- Eclipse Android SDK no puede ver el nuevo dispositivo Samsung Galaxy S4 a través de una conexión USB
- Native crash en /system/lib/libart.so en lollipop android 5.0.1 samsung
- Android SpeechRecognizer detecta su propio pitido como voz y salidas
- AssetManager $ AssetInputStream.finalize () se ha agotado después de 10 segundos
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); }
- Soporta múltiples tamaños de pantalla – Android
- Cómo girar el botón de acción flotante sin girar la sombra?