Конфигурация юнит-теста не работает в Android Studio 3.1

Я обновил до Android Studio 3.1 и, как это было предложено Android Studio, также:

  • Обновлен плагин Android gradle до версии 3.1.0 с 2.3.0 (также пробовал новый 3.1.1, проблема сохраняется)
  • Обновил buildToolsVersion до 27.0.3
  • Скачал Android 8.1 API 27 с менеджером SDK.

Я использую JDK 8.

Моя предыдущая конфигурация сборки Android Studio "Базовые тесты", которая только что запустила все тесты в одном модуле, теперь говорит:

Не удалось выполнить сборку с использованием дистрибутива Gradle " https://services.gradle.org/distributions/gradle-4.5.1-all.zip".

Моя настройка: введите описание изображения здесь

Точное исключение, как показано в ide: введите описание изображения здесь

Мой полный исходный код: https://github.com/Leejjon/BluffPoker

По-видимому, тот же Nullpointer происходит при запуске этого в командной строке: gradle :core:test Эта команда не будет выполнена с тем же NullPointer. Делать тест на корневой проект, как gradle test будет работать нормально. Я также могу развернуть приложение на своем телефоне Android. Вероятно, это не связано с IntelliJ, но плагин Android Gradle 3.1.0 не позволяет запускать gradle :core:test команда.

TLDR: выполнение любой задачи gradle в модуле ядра, например gradle :core:sometask Кажется, в результате нулевой указатель с плагина Android 3.1.0.

Мой обходной путь на данный момент заключается в использовании gradle test Команда для запуска всех тестов во всех модулях и изучения сгенерированных html-страниц по junit (находится в BluffPoker\core\build\reports\tests\test\index.html), чтобы выяснить, не работают ли они.

3 ответа

Решение

Как отметил этот комментатор ошибок: https://issuetracker.google.com/issues/77605097

Отключение функции "Настройка по требованию" в Gradle (в меню "Настройки: сборка, выполнение и развертывание: компилятор") является приемлемым обходным решением.

С тех пор, как я это сделал, мои юнит-тесты снова работают.

Решение от kekkou на форумах libgdx: http://www.badlogicgames.com/forum/viewtopic.php?f=11&t=27639&p=109249

Его решение: переместить project(':android') {} заблокировать в корне build.gradle в android\build.gradle.

Это заставляет все команды работать снова. Я не нашел никаких минусов.

Фикс для этого исправления в моем проекте: https://github.com/Leejjon/BluffPoker/commit/d10deb090c2d80e641d733efdaa85f99c0a9fe2f

В ваших gradle-wrapper.properties попробуйте использовать:

distributionUrl = https: //services.gradle.org/distributions/gradle-4.3-rc-2-all.zip

Другие вопросы по тегам