В этой сборке были использованы устаревшие функции Gradle, что делает его несовместимым с Gradle 5.0
У меня есть отказ в Gradle:
..."Deprecated Gradle features were used in this build, making it incompatible with Gradle 5.0."
Описание случая:
- К кодовой базе проекта прикреплены следующие библиотеки:
APP/build.gradle
//(Required) Writing and executing Unit Tests on the JUnit Platform
testImplementation "org.junit.jupiter:junit-jupiter-api:5.2.0"
testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:5.2.0"
// (Optional) If you need "Parameterized Tests"
testImplementation "org.junit.jupiter:junit-jupiter-params:5.2.0"
// (Optional) If you also have JUnit 4-based tests
testImplementation "junit:junit:4.12"
testRuntimeOnly "org.junit.vintage:junit-vintage-engine:5.2.0"
testImplementation "io.mockk:mockk:1.8.5"
Обновлен gradle- wrapper.properties
distributionUrl = https.... gradle-4.4-all.zip to 4.7-all
после того, как весь этот gradle был построен успех
создал тестовый кальс
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
class TestClass {
@Test
internal fun testName() {
Assert.assertEquals(2, 1 + 1)
}
}
запустил тест и получил сообщение FAILURE.
запустил сборку Gradle с аргументом командной строки ./gradlew --warning-mode=all
, чтобы увидеть, что именно является устаревшими функциями.
В результате я не смог создать приложение и получил сообщение FAILURE :.
Ответы
Ответ 1
Запустите сборку Gradle с аргументом командной строки --warning-mode=all
, чтобы увидеть, что именно является устаревшими функциями.
Он предоставит вам подробное описание найденных проблем со ссылками на документы Gradle для получения инструкций по исправлению вашей сборки.
Добавив к этому --stacktrace
, вы также сможете точно определить, откуда исходит предупреждение, если оно вызвано устаревшим кодом в одном из плагинов, а не вашим скриптом сборки.
Ответ 2
Я получаю эту ошибку. Оказывается, это произошло только тогда, когда я полностью очистил кеш RN (довольно сложный процесс), а затем создал сборку релиза.
Если я очистил кеш, создал отладочную сборку и затем сборку релиза, все работало. Немного беспокоит, но работает.
Примечание. Моя команда очистки...
rm -r android/build ; rm -r android/app/src/release/res ; rm -r android/app/build/intermediates ; watchman watch-del-all ; rm -rf $TMPDIR/react-* ; npm start -- --reset-cache
Ответ 3
Установите путь distributionUrl в файлах свойств gradle-wrapper как:
distributionUrl = https://services.gradle.org/distributions/gradle-4.10.2-all.zip
Ответ 4
Наконец, решили понизить юнит 5 до junit 4 и перестроить среду тестирования.
Ответ 5
Обновите свои сторонние зависимости. Например, я обновил зависимость от implementation 'com.github.ybq:Android-SpinKit:1.1.0'
до implementation 'com.github.ybq:Android-SpinKit:1.2.0'
. и в моем случае проблема была решена.
Ответ 6
Важно - Ответ работает только для терминала REACT-NATIVE VS CODE
В коде VisualStudio вы должны выполнить, как показано ниже, тогда это предупреждение будет опущено.
response-native run-android warning-mode = все
Если вы запустите ниже, вы получите ошибку в терминале При запуске реакции-нативного запуска-android --warning-mode все я получаю сообщение об ошибке: неизвестная опция --warning-mode '
Ответ 7
Для меня работало обновление Android Studio и обновление переменных среды JAVA_HOME и ANDROID_HOME. Я считаю, что это было вызвано тем, что я обновил версию Java (через программу обновления), но не обновил JDK.