Я запускаю Espresso тесты в приложении Android, в котором Activities
запущено на 2 процессах. Когда тестовое утверждение не выполняется на Activity
, который выполняется в «основном» процессе, журнал ошибок печатается, как и ожидалось. Тем не менее, когда тестовое утверждение не выполняется на Activity
, который выполняется на «вторичном» процессе, тест завершается со следующей ошибкой (выводится на logcat , а не на консоль тестирования):
java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/devtools/build/android/desugar/runtime/ThrowableExtension;
at androidx.test.espresso.remote.internal.deps.guava.base.Throwables.getStackTraceAsString(Throwables.java:352)
at androidx.test.espresso.remote.EspressoRemote$IncomingHandler.executeRequest(EspressoRemote.java:669)
at androidx.test.espresso.remote.EspressoRemote$IncomingHandler.handleEspressoRequest(EspressoRemote.java:616)
at androidx.test.espresso.remote.EspressoRemote$IncomingHandler.handleMessage(EspressoRemote.java:472)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:214)
at android.os.HandlerThread.run(HandlerThread.java:67)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.devtools.build.android.desugar.runtime.ThrowableExtension" on path: DexPathList
Я попытался использовать оба Java 7 и 8, изменить minSdkVersion
, добавить Guava в качестве прямой зависимости, выключить и снова включить. ничего.
Я уже проверял подобные вопросы ( здесь и здесь ), но я не смог найти решение. Похоже на ошибку в EspressoRemote
, но я хочу быть уверен, прежде чем указывать пальцами.
Моя среда тестирования:
- macOS Catalina (10.15.3)
- Android Studio 3.6.2
- Android Инструменты сборки 3.6.2
- Java 7
minSdkVersion
составляет 19 - Использование
androidx.test.espresso:espresso-remote:3.2.0
- Android работает эмулятор Android 10