Cuando ejecuto en modo de depuración , la aplicación se bloquea, pero cuando la ejecuto normalmente funciona. Creo que el problema ocurre cuando se adjunta el depurador.
Iniciar sesión:
A/art: art/runtime/jdwp/jdwp_event.cc:661] Check failed: Thread::Current() != GetDebugThread() (Thread::Current()=0x7f44a18400, GetDebugThread()=0x7f44a18400) Expected event thread
A/art: art/runtime/runtime.cc:422] Runtime aborting...
A/art: art/runtime/runtime.cc:422] Aborting thread:
A/art: art/runtime/runtime.cc:422] "JDWP" prio=5 tid=4 WaitingForDebuggerSend
A/art: art/runtime/runtime.cc:422] | group="" sCount=0 dsCount=0 obj=0x12c60280 self=0x7f44a18400
A/art: art/runtime/runtime.cc:422] | sysTid=24137 nice=0 cgrp=default sched=0/0 handle=0x7f4b904450
A/art: art/runtime/runtime.cc:422] | state=R schedstat=( 132066712 16401043 106 ) utm=9 stm=2 core=3 HZ=100
A/art: art/runtime/runtime.cc:422] | stack=0x7f4b80a000-0x7f4b80c000 stackSize=1005KB
A/art: art/runtime/runtime.cc:422] | held mutexes= "abort lock"
A/art: art/runtime/runtime.cc:422] native: #00 pc 000000000047e2cc /system/lib64/libart.so (_ZN3art15DumpNativeStackERNSt3__113basic_ostreamIcNS0_11char_traitsIcEEEEiP12BacktraceMapPKcPNS_9ArtMethodEPv+220)
A/art: art/runtime/runtime.cc:422] native: #01 pc 000000000047e2c8 /system/lib64/libart.so (_ZN3art15DumpNativeStackERNSt3__113basic_ostreamIcNS0_11char_traitsIcEEEEiP12BacktraceMapPKcPNS_9ArtMethodEPv+216)
A/art: art/runtime/runtime.cc:422] native: #02 pc 0000000000452434 /system/lib64/libart.so (_ZNK3art6Thread9DumpStackERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEEbP12BacktraceMap+480)
A/art: art/runtime/runtime.cc:422] native: #03 pc 00000000004403ac /system/lib64/libart.so (_ZNK3art10AbortState10DumpThreadERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEEPNS_6ThreadE+56)
A/art: art/runtime/runtime.cc:422] native: #04 pc 0000000000440228 /system/lib64/libart.so (_ZNK3art10AbortState4DumpERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEE+668)
A/art: art/runtime/runtime.cc:422] native: #05 pc 0000000000433bfc /system/lib64/libart.so (_ZN3art7Runtime5AbortEPKc+148)
A/art: art/runtime/runtime.cc:422] native: #06 pc 00000000000e597c /system/lib64/libart.so (_ZN3art10LogMessageD2Ev+1592)
A/art: art/runtime/runtime.cc:422] native: #07 pc 00000000002f8458 /system/lib64/libart.so (_ZN3art4JDWP9JdwpState24AcquireJdwpTokenForEventEm+624)
A/art: art/runtime/runtime.cc:422] native: #08 pc 00000000002f7b1c /system/lib64/libart.so (_ZN3art4JDWP9JdwpState29SendRequestAndPossiblySuspendEPNS0_9ExpandBufENS0_17JdwpSuspendPolicyEm+248)
A/art: art/runtime/runtime.cc:422] native: #09 pc 00000000002fcb08 /system/lib64/libart.so (_ZN3art4JDWP9JdwpState16PostClassPrepareEPNS_6mirror5ClassE+1380)
A/art: art/runtime/runtime.cc:422] native: #10 pc 0000000000124a9c /system/lib64/libart.so (_ZN3art11ClassLinker11DefineClassEPNS_6ThreadEPKcmNS_6HandleINS_6mirror11ClassLoaderEEERKNS_7DexFileERKNS9_8ClassDefE+804)
A/art: art/runtime/runtime.cc:422] native: #11 pc 0000000000381d04 /system/lib64/libart.so (_ZN3artL25DexFile_defineClassNativeEP7_JNIEnvP7_jclassP8_jstringP8_jobjectS7_S7_+344)
A/art: art/runtime/runtime.cc:422] native: #12 pc 00000000001dd40c /system/framework/arm64/boot-core-libart.oat (???)
A/art: art/runtime/runtime.cc:422] at dalvik.system.DexFile.defineClassNative(Native method)
A/art: art/runtime/runtime.cc:422] at dalvik.system.DexFile.defineClass(DexFile.java:296)
A/art: art/runtime/runtime.cc:422] at dalvik.system.DexFile.loadClassBinaryName(DexFile.java:289)
A/art: art/runtime/runtime.cc:422] at dalvik.system.DexPathList.findClass(DexPathList.java:418)
A/art: art/runtime/runtime.cc:422] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:54)
A/art: art/runtime/runtime.cc:422] at com.android.tools.fd.runtime.IncrementalClassLoader$DelegateClassLoader.findClass(IncrementalClassLoader.java:90)
A/art: art/runtime/runtime.cc:422] at com.android.tools.fd.runtime.IncrementalClassLoader.findClass(IncrementalClassLoader.java:62)
A/art: art/runtime/runtime.cc:422] at java.lang.ClassLoader.loadClass(ClassLoader.java:380)
A/art: art/runtime/runtime.cc:422] at java.lang.ClassLoader.loadClass(ClassLoader.java:367)
A/art: art/runtime/runtime.cc:422] at java.lang.ClassLoader.loadClass(ClassLoader.java:367)
A/art: art/runtime/runtime.cc:422] at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
A/art: art/runtime/runtime.cc:422] Dumping all threads without appropriate locks held: thread list lock mutator lock
android
android-studio
debugging
android-debug
android-debugging
Maxim Rabtsun
fuente
fuente
Respuestas:
Para mí, ocurrió cuando tengo un punto de interrupción en una función anidada. En mi caso, estaba dentro
Runnable.run() {}
. No estoy seguro si sucede en otras funciones anidadas.Ejemplo:
Si hay un punto de interrupción en cualquier línea dentro de la función run (), se bloquea con el error
A/art: art/runtime/jdwp/jdwp_event.cc:661] Check failed: Thread::Current() != GetDebugThread() (Thread::Current()=0x########, GetDebugThread()=0x########) Expected event thread
.Este error ocurre la primera vez que se encuentra la clase, NO cuando se alcanza el punto de interrupción. Entonces se me ocurrió cuando entré en una línea que tenía
new TouchEvent();
, antes de que se ejecutara el código de TouchEvent (antes del constructor).La solución es eliminar el punto de ruptura (y ponerlo en otro lugar).
Editar:
Olvidé mencionar que parece estar vinculado a API25, pero también se ha informado para API26 y API27.
Editar:
Otra solución es deshabilitar Instant Run , pero otorgue crédito a @ toobsco42 por eso a continuación.
fuente
En mi caso tuve que deshabilitar Instant Run. Parece que Instant Run tiene todo tipo de efectos secundarios y este puede ser uno de ellos.
fuente
El problema está relacionado con la versión 7.x de Android, eliminé todos los puntos de interrupción en las funciones anidadas y funcionó, también probé con la versión 6.0 de Android y funciona sin problemas.
Según la respuesta del equipo de desarrolladores de Google, se solucionó el 1/12/2016 y se aplicará en la próxima versión.
fuente
Eliminé todos los puntos de interrupción y funcionó, probado con Emulator Pixel API 25.
Para eliminar todos los puntos de interrupción:
Ir a la opción de depurador.
Haga clic en el icono rojo que se encuentra debajo para detener la depuración.
Verá una ventana allí donde puede eliminar todos los puntos de interrupción.
Ver más en esta publicación: https://stackoverflow.com/a/42478994/5749462
fuente
Esto se debe a algún problema con los puntos de depuración. Elimine todos los puntos de depuración y luego debería funcionar.
fuente
Es realmente extraño, deshabilité Instant Run y el problema se resolvió por sí solo.
fuente
Mi problema era que tenía un punto de interrupción en la declaración de importación
fuente
En la ventana 5: Depuración, use el botón "Ver puntos de interrupción"
Anular selección de todos
fuente
La solución más simple es tratar de encontrar otro dispositivo o emulador (gracias al Administrador de AVD, tenemos una opción) que funcionará de maravilla sin soluciones
fuente
Mi aplicación también se bloqueó solo cuando estaba en modo de depuración. En cuanto a la versión 3.5: "Ejecución instantánea" se reemplazó con "Aplicar cambios", por lo que no pude desactivarla. Mi solución fue iniciar la aplicación normalmente (con la flecha verde), navegar justo después del lugar donde solía bloquearse y luego adjuntarle el depurador:
fuente
Eliminar el punto de interrupción de Runable.run () resolvió el problema por mí. Pude usar puntos de interrupción en tiempo de ejecución dentro de Runable.run (). Pero no en tiempo de compilación
fuente
Me encontré con este mismo problema, pero mi punto de interrupción fue la primera línea de la función anidada, ¿cómo moverlo a otro lugar?
Creé un método privado temporal e hice una invocación de ese método lo primero en la función y luego establecí el punto de interrupción en ese método.
Cuando terminé de depurar, eliminé el método y su invocación.
fuente
es una posibilidad remota, pero para mí, cuando tengo una declaración de importación que no se está utilizando, y esa importación tiene un código que ejecuta llamadas de red, se bloqueó para mí, pero al eliminarla, el código pudo depurar normalmente.
fuente
Comienza a fallar solo cuando se inicia con el depurador. Reinicié Android Studio 2.3.2 ... siguió fallando. Funciona bien en modo Run. Puse un Log.d () justo después de onCreate ... ¡y resolvió el problema! ¡Imagínate!
fuente
Eliminar todos los puntos de depuración en mi aplicación funciona bien, puede usar ctrl + shift + f6 para eliminar todos los puntos de depuración
fuente