Конфигурация юнит-теста не работает в 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