У меня ОТКАЗ gradle:
..."Deprecated Gradle features were used in this build, making it incompatible with Gradle 5.0."
Описание кейса:
Приложение / 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-все.zip в 4.7-все
после всего этого градиент был построен успехом
создал тестовую программу
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
class TestClass {
@Test
internal fun testName() {
Assert.assertEquals(2, 1 + 1)
}
}
запустил сборку Gradle с аргументом командной строки ./gradlew --warning-mode=all, чтобы узнать, какие именно устаревшие функции.

В результате я не смог создать приложение и получил сообщение FAILURE :.
Приложение компилируется с тем же сообщением об ошибке. :-(
Это не неудача. Если бы приложение не скомпилировалось, это было бы ошибкой. В лучшем случае это предупреждение.
@ EpicPandaForce, к сожалению, это сообщение об ошибке, как я уже упоминал. Вопрос не в том, как интерпретировать сообщение, но в любом случае моя признательность за ваше влияние.
Запустите сборку Gradle с аргументом командной строки --warning-mode=all, чтобы узнать, какие именно устаревшие функции.
Он предоставит вам подробное описание обнаруженных проблем со ссылками на документы Gradle с инструкциями по исправлению вашей сборки.
Добавив к этому --stacktrace, вы также сможете точно определить, откуда исходит предупреждение, если оно вызвано устаревшим кодом в одном из плагинов, а не скриптом сборки.
Я обновил описание проблемы, используя это предложение.
При запуске react-native run-android --warning-mode all получаю error: unknown option --warning-mode'
Попробуйте запустить gradle build --warning-mode=all
Как это правильный ответ ?!
@Led, предупреждения об устаревании могут возникнуть по многим причинам, от устаревшей функции, используемой в сценарии сборки, до устаревших сторонних плагинов Gradle или ошибочного вызова устаревшего API. Этот ответ предлагает способ узнать, что именно вызывает предупреждения об устаревании, поэтому, узнав об этом, вы можете искать решения более конкретной проблемы.
В конце концов решил понизить версию junit 5 до junit 4 и перестроить среду тестирования.
Как ты это сделал?
Имейте в виду, Pratik, сейчас, шесть месяцев спустя, я полагаю, что обстоятельства вокруг этого вопроса изменились. Я бы посоветовал вам разобраться с нуля, удобно ли использовать JUnit 5 в качестве тестового инструмента.
Задайте путь distributionUrl в файлах свойств gradle-wrapper как:
distributionUrl = https: //services.gradle.org/distributions/gradle-4.10.2-all.zip
у моего gradle была эта строка .. .distributionUrl = https \: //services.gradle.org/distributions/ gradle-4.8.1-bin.zip Изменил на, и это сработало. distributionUrl = services.gradle.org/distributions/gradle-4.1 0.2-all.zip
Обновите свои сторонние зависимости. Например Я обновил зависимость от
implementation 'com.github.ybq:Android-SpinKit:1.1.0' в implementation 'com.github.ybq:Android-SpinKit:1.2.0'. и в моем случае проблема решена.
следуйте предложению горячей клавиши для точного подробного описания
это была ошибка, и я обновляю версию Gradle и пробую все возможные шаги. :(
Я получал эту ошибку. Оказывается, это произошло только тогда, когда я полностью очистил кеши 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
Правильный ответ...
Это ПРАВИЛЬНЫЙ ответ после ЧАСОВ поисков и попыток.
Важно - Ответ работает только для терминала REACT-NATIVE VS CODE
В коде VisualStudio вы должны запустить, как показано ниже, тогда это предупреждение будет опущено.
реагировать-родной run-android-предупреждения-режим = все
If you run below then you will get the error in terminal When running react-native run-android --warning-mode all I get error: unknown option --warning-mode'
Решение проблемы: В этой сборке использовались устаревшие функции gradle, что делало ее несовместимой с gradle 6.0. студия Android Это предоставленное решение сработало для меня.
Сначала измените путь к классам в зависимостях build.gradle вашего проекта
Откуда: classpath 'com.android.tools.build:gradle:3.3.1'
Кому: classpath 'com.android.tools.build:gradle:3.6.1'
Затем внесите изменения в файл gradle-wrapper.properties, этот файл существует в папке проекта gradle> wrapper.
Откуда: distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
Кому: distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip
Затем синхронизируйте свой градиент.
Попробуй это
cd android && ./gradlew clean && ./gradlew :app:bundleRelease
Спасибо, не могли бы вы объяснить, почему этот ./gradlew: app: bundleRelease работает, а этот ./gradlew bundleRelease - нет.
отлично сработал для меня в моем проекте cordova-9.0: D
@AtikurRahmanSabuj Это зависит от того, как был написан файл ./gradlew. Поскольку модулем по умолчанию в Android является «приложение», а приложение Android может иметь несколько модулей. Также ./gradlew должен работать только после очистки. Чтобы увидеть все задачи в gradlew, выполните "./gradlew tasks", который сообщит вам о доступных задачах в gradlew.
Для Apache Cordova и Android 9 ошибку можно устранить, включив AndroidX. Чтобы включить, см .: cordova.apache.org/announcements/2020/06/29/…
В проекте SpringBoot с использованием IntelliJ и Gradle я получил предупреждение «В этой сборке использовались устаревшие функции Gradle, что делает ее несовместимой с Gradle 5.0» при запуске моего интеграционного теста. Что решило проблему: - Переход к: Файл> Настройки> Сборка, выполнение, развертывание - Выбор для «Сборка и запуск с использованием»: Intellij IDEA (вместо «Gradle») - То же самое для «Запуск тестов с использованием» Это не объясняло, почему Gradle отображает предупреждение, но это позволило мне выполнить тест и продвинуться в моей работе.
в моем случае я обновил файл build.gradle и сделал classpath до последней версии с 3.5.2 на 3.6.3
dependencies {
classpath("com.android.tools.build:gradle:3.6.3")
}
Исправлена такая ошибка после перейти на AndroidX
Следующее решение помогло мне, так как я также получал такое же предупреждение. В файле gradle уровня проекта попробуйте изменить версию gradle в пути к классам
classpath "com.android.tools.build:gradle:3.6.0" to
classpath "com.android.tools.build:gradle:4.0.1"
Это сработало для меня после того, как я попробовал все остальные процессы здесь. Это спасает мне день. Спасибо
Боролся с этой ошибкой 2 часа. Этот ответ сэкономил мне много времени.
Если вы используете реагировать-родной, попробуйте сначала выполнить следующие команды перед запуском проекта:
Теперь снова запустите свой проект.
Это работает для меня в этом вопросе в проекте react-native:
В этой сборке использовались устаревшие функции Gradle, что делало ее несовместимой с Gradle 7.0.
244 действенных задачи: 2 выполнены, 242 актуальны D8: не удается разместить запрошенные классы в одном файле dex (# поля: 67296> 65536) com.android.builder.dexing.DexArchiveMergerException: ошибка при слиянии архивов dex: Количество ссылок на методы в файле .dex не может превышать 64 КБ. Узнайте, как решить эту проблему, на https://developer.android.com/tools/building/multidex.html ....
Я сделал это:
Удалите приложение с моего устройства:
Количество ссылок на методы в файле .dex не может превышать 64 КБ. API 17.
Спасибо, что поделился. почти 50 минут потратил на это. просто удаление приложения с устройства помогло мне.
В моем случае добавление multiDexEnabled true в файл Android / build / build.gradle скомпилировал файлы.
Я постараюсь удалить это в будущем, поскольку в документация говорится: «Перед настройкой вашего приложения для включения использования 64 КБ или более ссылок на методы вы должны предпринять шаги для уменьшения общего количества ссылок, вызываемых кодом вашего приложения, включая методы. определяется кодом вашего приложения или включенными библиотеками.
defaultConfig {
applicationId "com.peoplesenergyapp"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 1
versionName "1.0"
multiDexEnabled true // <-add this
}
Удалите старое приложение с устройства / эмулятора. Это сработало для меня
Я использую response-native, и это работает для меня:
cd android и gradlew cleanКороче
> Task :app:installDebug FAILED Исправлено kiling java.exe prossess
это из-за несовместимости.
пожалуйста, обновите classpath("com.android.tools.build:gradle:4.0.1") в файле build.gradle в папке android.
В моем случае сработал приведенный ниже процесс - Сначала проверьте версию Gradle:
cd android
./gradlew -v
В моем случае это было 6.5
Перейдите в https://developer.android.com/studio/releases/gradle-plugin, и вы получите версию плагина для своей версии Gradle. Для версии Gradle 6.5 версия плагина - 4.1.0.
Затем перейдите на app/build.gradle и поменяйте classpath 'com.android.tools.build:gradle:<plugin_version>
Я обнаружил, что мое дисковое пространство меньше 4 ГБ и не могу получить репозиторий Gradle lib тогда покажи
Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
просто удалите tmp и ненужные файлы, освободите место, затем попробуйте собрать и решить проблему
В моем случае удаление всей папки android из базового каталога и разрешение ему перестроить все это на eas build устранило эту ошибку для меня :)
Это не неудача. Приложение все еще компилируется, не так ли?