Кордова/Ионная сборка android Gradle error: Минимальная поддерживаемая версия Gradle - 2.14.1. Текущая версия 2.13

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

Если вы не будете осторожны, может возникнуть несоответствие между версией 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';

Где х и у зависит, какая версия Кордовы/кордовы-андроида используется для создания собственного кода приложения.

Когда вы запускаете

$ cordova build android

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

Теперь вот сложная часть. Когда вы импортируете проект в 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, вы всегда можете изменить дистрибутив Url var в упомянутом выше файле (однако Cordova категорически не рекомендует изменять код в папке платформ, так как он легко перезаписывается). На момент написания этого я не могу сказать, есть ли способ установить версию Gradle на

$ cordova platform add android

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

Ответы

Ответ 1

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

cordova platform remove android

cordova platform add android

ionic build android

Ответ 2

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

После прочтения вашей документации я не смог решить проблему с вашим предложением оставить 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()
}

Тогда я смог построить.

Ответ 3

Переход на "Use default gradle wrapper" не работал для меня на моем ионном проекте 1, но работает

ionic platform remove android
ionic platform add android

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

Ответ 4

вы можете изменить значение в платформе /android/cordova/lib/builders/GradleBuilder.js

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

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

Другой способ устранить проблему, которая также работает в Windows:

cordova build android --release --CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip

Ответ 6

Я хочу продлить ответ @bungler.

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

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

Для текущей версии gradle 3. 3+, совместимая версия плагина android 2.3.3

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

Для Mac

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

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

export CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL="https\://services.gradle.org/distributions/gradle-3.3-all.zip"

или же

вариант b) вы можете загрузить файл градиента и поместить его в <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'
  }
}

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

Ответ 7

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

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

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

ionic cordova platform update android

Ответ 8

В ответ на ответ Чака Холбрукса со следующим решением я получаю ошибку при попытке добавить платформу 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