test studio not medium instrumented found example developers activitytestrule android android-studio android-espresso ui-testing espresso

studio - testing android medium



Error de prueba de espresso: AppNotIdleException (2)

Apagué todas las animaciones en las opciones de desarrollador. Pero sigo recibiendo esta excepción cuando intento hacer clic en uno de los botones.

Mi aplicación es de hecho activa y no inactiva por completo, pero no puedo cambiarla.

android.support.test.espresso.AppNotIdleException: Looped for 6930 iterations over 60 SECONDS. The following Idle Conditions failed . at dalvik.system.VMStack.getThreadStackTrace(Native Method) at java.lang.Thread.getStackTrace(Thread.java:580) at android.support.test.espresso.base.DefaultFailureHandler.getUserFriendlyError(DefaultFailureHandler.java:92) at android.support.test.espresso.base.DefaultFailureHandler.handle(DefaultFailureHandler.java:56) at android.support.test.espresso.ViewInteraction.runSynchronouslyOnUiThread(ViewInteraction.java:184) at android.support.test.espresso.ViewInteraction.doPerform(ViewInteraction.java:115) at android.support.test.espresso.ViewInteraction.perform(ViewInteraction.java:87)


He estado luchando con este problema durante los últimos días.
Aquí hay un método que utilicé para identificar a los "infractores":

private void dumpThreads() { int activeCount = Thread.activeCount(); Thread[] threads = new Thread[activeCount]; Thread.enumerate(threads); for (Thread thread : threads) { System.err.println(thread.getName() + ": " + thread.getState()); for (StackTraceElement stackTraceElement : thread.getStackTrace()) { System.err.println("/t" + stackTraceElement); } } }

En mi caso, el SDK de Facebook estaba usando el grupo de subprocesos AsyncTask.


Según la answer de MaciejGórski a la pregunta similar:

Fue un error en el código de mi aplicación, donde SwipeRefreshLayout animó por tiempo indefinido. Debido a un error en este componente , el estado de actualización ni siquiera se mostraba.