it-swarm.com.ru

Cordova/Ionic build Ошибка Android Gradle: Минимальная поддерживаемая версия Gradle - 2.14.1. Текущая версия 2.13

Это решение вышеуказанной ошибки, которую я хочу документировать. Я нашел другие подобные посты, но ни один не описал, как эта ошибка может быть связана с Cordova или Ionic.

Если вы не будете осторожны, может произойти несоответствие между версией Gradle, которую использует Android Studio, и версией Gradle, которую Cordova/cordova-Android указывает в своем автоматически сгенерированном коде приложения. Как известно, бег

$ cordova platform add Android

(или $ ionic platform add Android, если вы создаете приложение Ionic) создает собственный код приложения в-project/platform/Android. 

Внутри этой папки файл: /the-project/platforms/Android/cordova/lib/builders/GradleBuilder.js экспортирует переменную, как показано ниже:

var distributionUrl = process.env['CORDOVA_Android_GRADLE_DISTRIBUTION_URL'] || 'http\\://services.gradle.org/distributions/gradle-x.y-all.Zip';

Где x и y зависели от того, какая версия Cordova/cordova-Android используется для создания собственного кода приложения. 

Когда ты бежишь

$ cordova build Android

Версия Gradle, указанная в переменной distributionUrl, является версией, используемой для сборки.

Теперь здесь начинается сложная часть. Когда вы импортируете проект в Android Studio, вы, скорее всего, получите сообщение, в котором настоятельно рекомендуется обновить Gradle до более новой версии, как показано ниже: 

 enter image description here Если вы сделаете это, Android Studio загрузит новую версию Gradle, сохранит ее локально и настроит проект для использования только что загруженного локального дистрибутива Gradle, который является опцией радиосвязи под выбранным «Использовать упаковщик оценок по умолчанию». , который я в конечном итоге отменил, потому что это приведет к ошибкам.

 enter image description here

Это вызовет проблемы, потому что Android Studio и Cordova теперь будут пытаться собрать приложение с разными версиями Gradle, и вы получите ошибки сборки в Android Studio, а также с 

$ cordova build Android

в командной строке. Решение с приложениями Cordova состоит в том, чтобы всегда сохранять для проекта Android Studio значение «Использовать упаковщик по умолчанию» и игнорировать заманчивые сообщения для обновления. Если вы действительно хотите использовать более новую версию Gradle, вы всегда можете изменить переменную distributionUrl в указанном выше файле (однако Cordova настоятельно не рекомендует изменять код в папке платформ, поскольку он легко перезаписывается). На момент написания этого я не могу сказать, есть ли способ установить версию Gradle на 

$ cordova platform add Android

шаг, когда вы захотите это сделать, чтобы вы никогда не модифицировали код внутри проекта/платформы

20
cnanders

Для меня следующие команды решили проблему:

cordova platform remove Android

cordova platform add Android

ionic build Android
17
zhannett

Я бы хотел оставить это как комментарий, но я, видимо, недостаточно авторитетен ... 

После прочтения вашей документации я не смог решить мою проблему с вашим предложением оставить Android Studio "Использовать упаковщик по умолчанию". Что я нашел, так это то, что установка переменной сеанса CORDOVA_Android_GRADLE_DISTRIBUTION_URL перед сборкой привела меня немного дальше:

[email protected]:$ export CORDOVA_Android_GRADLE_DISTRIBUTION_URL="https\://services.gradle.org/distributions/gradle-2.14.1-all.Zip"
[email protected]:$ cordova build Android

Следующее, что мне нужно было сделать, это отредактировать <project>/platforms/Android/build.gradle и <project>/platforms/Android/CordovaLib/build.gradle и убедиться, что они оба указали на правильную версию плагина gradle. 

dependencies {
    classpath 'com.Android.tools.build:gradle:2.2.0'
}

... и в <project>/platforms/Android/CordovaLib/build.gradle я добавил jcenter в репозитории (потому что maven.org, похоже, не имел 2.2.0)

repositories {
    mavenCentral();
    jcenter()
}

Я был в состоянии построить тогда.

10
Bungler

Переключение обратно на «Использовать упаковщик по умолчанию» не работало для меня в моем проекте Ionic 1, но работает

ionic platform remove Android
ionic platform add Android

Работал для меня

8
Chuck Holbrook

вы можете изменить значение в платформе/Android/Cordova/Lib/Builders/GradleBuilder.js

значение, которое вы изменили, при замене платформы Android будет заменено последним Zip-файлом, так что вам не нужно беспокоиться об изменении его

var distributionUrl = process.env['CORDOVA_Android_GRADLE_DISTRIBUTION_URL'] || 'https\\://services.gradle.org/distributions/gradle-2.14.1-all.Zip';

или как другие

export CORDOVA_Android_GRADLE_DISTRIBUTION_URL="https\://services.gradle.org/distributions/gradle-2.14.1-all.Zip"
5
Zam

Еще один способ исправить проблему, которая также работает в Windows:

cordova build Android --release --CORDOVA_Android_GRADLE_DISTRIBUTION_URL=https\://services.gradle.org/distributions/gradle-2.14.1-all.Zip
3
Cezary Daniel Nowak

Я хочу расширить ответ @bungler. 

Я запутался с версией gradle и совместимой версией плагина Android для gradle. Следующая ссылка содержит список совместимых версий:

Gradle vs Android плагин для gradle - Список совместимых версий

Для текущей версии gradle 3.3+ совместимой версией плагина Android является 2.3.3

Таким образом, окончательные настройки будут выглядеть следующим образом:

Для Mac

ШАГ 1: Добавьте следующее в переменные env:

вариант а) обновить переменную env:

export CORDOVA_Android_GRADLE_DISTRIBUTION_URL="https\://services.gradle.org/distributions/gradle-3.3-all.Zip"

или же 

вариант б) вы можете скачать gradle файл и поместить его в <project>/platforms/Android/gradle/ и обновить переменную env:

export CORDOVA_Android_GRADLE_DISTRIBUTION_URL="../gradle-3.3-all.Zip"

ШАГ 2: Обновить следующее в <project>/platforms/Android/CordovaLib/build.gradle

buildscript {
  ...
  dependencies {
    classpath 'com.Android.tools.build:gradle:2.3.3'
  }
}

Это сработало для меня. 

2
Maverick09

Для последующей ошибки: 

Минимальная поддерживаемая версия Gradle - 4.1. Текущая версия 3.3. Если используя оболочку Gradle, попробуйте отредактировать distributionUrl в E:\ionic\MyIonicProject\gr adle\wrapper\gradle-wrapper.properties to gradle-4.1-all.Zip для gradle 4.1

Эта команда работала для меня:

ionic cordova platform update Android
1
EmRa228

В ответ на ответ Чака Холбрукса со следующим решением я получаю ошибку при попытке добавить платформу Android снова, говоря, что она уже добавлена. 

ionic cordova platform remove Android
ionic cordova platform add Android

Мое рабочее решение: 

ionic cordova platform remove Android
ionic cordova platform check Android
ionic cordova platform add Android 
0
Peter Edwards