Сбои тестов для Android после обновления до Java 8 и сборки инструментов версии 25

У меня было множество тестовых примеров, которые работали нормально. Но как только мой проект был обновлен для создания инструментов версии 25, а Java был обновлен до JDK 1.8, все мои тестовые примеры терпят неудачу.

Когда я запускаю свои тесты, я использую ./gradlew cAT, я получаю сообщение об ошибке:

Ошибка инструментария не удалась из-за «java.lang.NullPointerException» com.android.builder.testing.ConnectedDevice> Не найдено никаких тестов. [Nexus 6 – 6.0.1] FAILED

Или

Тесты на Nexus 6 – 6.0.1 не удалось: запуск инструментария завершился неудачно из-за «java.lang.ClassNotFoundException»

Com.android.builder.testing.ConnectedDevice> Не найдено никаких тестов. [Nexus 6 – 6.0.1] FAILED

Мой build.gradle имеет следующие строки:

androidTestCompile 'junit:junit:4.12' androidTestCompile 'com.android.support.test:runner:0.4' androidTestCompile 'com.android.support.test:rules:0.4' androidTestCompile 'com.android.support.test:testing-support-lib:0.1' 

Любая идея, каким может быть решение?

Обновить:

Когда я пытаюсь запустить то же самое из gradle, используя ./gradlew -cAT -s, я вижу следующее исключение:

Вызвано: java.lang.NoClassDefFoundError: org / gradle / logging / ConsoleRenderer на com.android.build.gradle.internal.tasks.DeviceProviderInstrumentTestTask.runTests (DeviceProviderInstrumentTestTask.java:140) на org.gradle.internal.reflect.JavaMethod. Invoke (JavaMethod.java:75) в org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory $ StandardTaskAction.doExecute (AnnotationProcessingTaskFactory.java:228) на org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory $ StandardTaskAction. Выполнить (AnnotationProcessingTaskFactory.java:221) в org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory $ StandardTaskAction.execute (AnnotationProcessingTaskFactory.java:210) в org.gradle.api.internal.AbstractTask $ TaskActionWrapper.execute (AbstractTask. Java: 621) at org.gradle.api.internal.AbstractTask $ TaskActionWrapper.execute (AbstractTask.java:604) в org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction (ExecuteActionsTas KExecuter.java:80) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions (ExecuteActionsTaskExecuter.java:61) … еще 68

Googling говорит мне, что это может быть специфической проблемой с градиентом 2.14, но мои тесты работали нормально раньше в той же версии градуировки.

Оказывается, первопричина была нулевым указателем во время инициализации моего базового контекста!

Мои знания:

  • Независимо от того, используем ли мы IDE или gradle для запуска тестовых примеров, они, наконец, делают вызов команды am instrumentation ( https://developer.android.com/studio/test/command-line.html ).

  • Запустите команду adb shell am instrument -w -r -e debug true -e class (обратите внимание, что я установил debug для true).

  • Одновременно запустите logcat adb. Это объяснило мне, почему именно я столкнулся с NPE.