La aplicación de depurador de Android Studio se bloquea con InterruptedException

Mientras trabajaba hoy, parecía como si de repente ya no pudiera depurar nuestra aplicación. Lo curioso es que si ejecutaba la aplicación normalmente funcionaría bien. Para aclarar, estaba corriendo el depurador toda la mañana sin incidentes (aparte de la falla ocasional o accidente). Luego, después del almuerzo comenzó a fallar el 100% del tiempo. Por supuesto, he estado haciendo cambios todo el día, de ahí el "parece" de arriba. Así pues, aquí están algunos detalles relevantes:

Aquí está el rastreo de la pila:

05-24 14:56:25.764 2399-2745/com.mycomp.myapp.test E/Crashlytics: Failed to execute task. java.lang.InterruptedException at java.util.concurrent.FutureTask.awaitDone(FutureTask.java:375) at java.util.concurrent.FutureTask.get(FutureTask.java:162) at com.crashlytics.android.va(SourceFile:1936) at com.crashlytics.android.v.uncaughtException(SourceFile:307) at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:693) at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:690) 05-24 14:56:25.764 2399-2745/com.mycomp.myapp.test E/AndroidRuntime: FATAL EXCEPTION: pool-5-thread-1 Process: com.mycomp.myapp.test, PID: 2399 java.lang.InterruptedException at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.reportInterruptAfterWait(AbstractQueuedSynchronizer.java:1991) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2025) at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:410) at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1035) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1097) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) at java.lang.Thread.run(Thread.java:820) 

Aquí están las cosas que he intentado arreglarlo:

  • Retirar todos mis cambios (git stash)
  • Desinstalar la aplicación del teléfono
  • Hacer una compilación limpia
  • Hacer un proyecto de Gradle Resync
  • Eliminar todos los puntos de interrupción (en serio?)
    • Ok, he estado agregando puntos de interrupción por todas partes para ver cómo funcionan las cosas, así que ¿quién sabe? Hay algún mérito allí.
  • ¡Reinicie Android Studio! (Apagarlo y encenderlo de nuevo)

Y hasta ahora, nada funciona. Sin embargo, no puedo enfatizar lo suficiente que si acabo de ejecutar la aplicación (botón de reproducción, ^ R) y ejecutarlo en el mismo dispositivo, funciona muy bien! Inicie sesión sin ningún problema. Por lo tanto, no parece ser un problema de código.

Además, si nos fijamos en el seguimiento de pila, no hay nada que apunte a nuestro proyecto.

¿Algunas ideas?

Bueno, lo averigüé. Resulta que tenía un "Java Field Watchpoint" seleccionado con "Suspend Thread" como una de las opciones. Ver la captura de pantalla adjunta para aclaración. Comida para llevar:

Como puedes ver, yo había estado usando un montón de puntos de interrupción, por lo que se enterró en la ventana y no lo vi.

Todavía no sé cómo se puso. Había estado usando relojes un día anterior, pero los había borrado todos. Además, estoy seguro de que no lo encendí, así que cómo misteriosamente dejó de funcionar en medio del día sigue siendo un misterio. Además, ciertamente no habría comprobado "suspender el hilo" por mi cuenta. ¿Algún tipo de configuración predeterminada?

El punto sigue siendo – si usted está viendo rastros extraños de la pila, puede ser bueno comprobar todos los puntos de interrupción y mirar ajustes del punto.

Espero que esto ayude a alguien.

Captura de pantalla de BreakPoint Window en Android Studio

Instant Ejecutar parece ser el culpable (al menos en mi caso con Android Studio 2.3.3). En lugar de desactivar los puntos de interrupción, intente desactivar la ejecución instantánea. Una vez que hice esto, los puntos de interrupción dejaron de causar accidentes.

Ver fallos de aplicación de Android cuando se inicia en modo de depuración para obtener más información. Bajo Mac OS X, desactivé la ejecución instantánea yendo a Android Studio-> Preferencias-> Creación, Ejecución, Implantación-> InstantRun y ​​desmarcando "Activar Instant Ejecutar a hot swap …".

¿Hay un problema con Instant Run? En el panel de configuración. Hice clic en "Reactivar y activar el registro extra", reprodujo el error y, a continuación, informó de inmediato utilizando la opción "Ayuda – Informe Instant Ejecutar problema …" como lo pidieron.

  • No golpear puntos de interrupción depurar pruebas de Junit de Android en Eclipse
  • Aplicación no instalada 'Error en Android 2.3.4
  • ¿Qué significa "Añadir aleatoriedad: count = 383 entropía = 381"?
  • Android Studio nunca termina de cargar la aplicación en el Nexus 10
  • Cómo leer los informes de fallos de la Consola del programador
  • El dispositivo Android no está conectado a USB para depurar (Android studio)
  • MediaRecord no pudo iniciar el emulador Android 7.1.1
  • Evitar la aplicaciónNotResponding durante la depuración
  • ¿Cómo configurar la depuración en Visual Studio Code para React Native?
  • Error: dispositivo desconectado
  • ¿Cómo depurar un ejecutable de Dalvik en Android con GDB?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.