Cordova / Ionic build android Gradle 错误:支持的最低 Gradle 版本为 2.14.1。当前版本是 2.13

Posted

技术标签:

【中文标题】Cordova / Ionic build android Gradle 错误:支持的最低 Gradle 版本为 2.14.1。当前版本是 2.13【英文标题】:Cordova / Ionic build android Gradle error: Minimum supported Gradle version is 2.14.1. Current version is 2.13 【发布时间】:2017-01-14 05:14:49 【问题描述】:

这是我要记录的上述错误的解决方案。我发现了其他类似的帖子,但没有人描述此错误如何与 Cordova 或 Ionic 相关联。

如果您不小心,android Studio 使用的 Gradle 版本可能与 Cordova / cordova-android 在其自动生成的应用程序代码中指定的 Gradle 版本不匹配。如你所知,跑步

$ cordova platform add android

(或$ ionic platform add android,如果您正在构建 Ionic 应用程序)在-project/platforms/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

distributionUrl var 中指定的 Gradle 版本是用于构建的版本。

现在棘手的部分来了。当您将项目导入 Android Studio 时,您很可能会收到一条强烈建议您将 Gradle 升级到更新版本的消息,如下所示:

如果这样做,Android Studio 将下载一个新版本的 Gradle 并将其存储在本地,并将项目配置为使用新下载的本地 Gradle 发行版,这是选中的“使用默认等级包装器”下方的单选选项,我结束了取消选择,因为这会导致错误。

这将导致问题,因为 Android Studio 和 Cordova 现在将尝试使用不同版本的 Gradle 构建应用程序,您将在 Android Studio 和使用

时遇到构建错误
$ cordova build android

在命令行中。 Cordova 应用程序的解决方案是始终将 Android Studio 项目设置为“使用默认 gradle 包装器”,并忽略升级的诱人消息。如果您确实想使用更新版本的 Gradle,您可以随时更改上述文件中的 distributionUrl var(但是 Cordova 强烈反对修改平台文件夹中的代码,因为它很容易被覆盖)。在写这篇文章的时候,我不知道有没有办法在

$ cordova platform add android

步骤,这是您想要这样做的时候,因此您永远不会直接修改项目/平台内的代码

【问题讨论】:

【参考方案1】:

在跟进 Chuck Hol***s 的回答后,通过以下解决方案,我在尝试再次添加 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 

【讨论】:

【参考方案2】:

对于跟随错误:

支持的最低 Gradle 版本为 4.1。当前版本是 3.3。如果 使用 gradle 包装器,尝试编辑 distributionUrl E:\ionic\MyIonicProject\gr adle\wrapper\gradle-wrapper.properties 到 gradle-4.1-all.zip 用于 gradle 4.1

这个命令对我有用:

ionic cordova platform update android

【讨论】:

那个命令为我做了!感谢 EmRa228。比其他解决方案容易得多。【参考方案3】:

我想扩展@bungler 的答案。

我对 gradle 的版本和 gradle 的 android 插件的兼容版本感到困惑。以下链接有兼容版本映射列表:

Gradle vs Android plugin for gradle - Compatible version list

对于当前版本的gradle 3.3+,兼容的android插件版本是2.3.3

所以最终设置如下所示:

对于 Mac

第 1 步:在环境变量中添加以下内容:

选项 a) 更新环境变量:

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

选项 b )您可以下载 gradle file 并将其放入 <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'
  

这对我有用。

【讨论】:

适用于 Mac 和 Linux【参考方案4】:

对我来说,以下命令解决了这个问题:

cordova platform remove android

cordova platform add android

ionic build android

【讨论】:

如果可以的话,我会添加到“不要再次在 Android Studio 中打开项目”。 :) 截至 2020 年 3 月,这仍然可以解决问题。【参考方案5】:

您可以更改 platform/android/cordova/lib/builders/GradleBuilder.js 中的值

你改变的值,当你重新安装android平台时,它会被最新的gradle 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"

【讨论】:

先生的意思是..更改版本并删除平台然后再次添加平台对吗?【参考方案6】:

在我的 ionic 1 项目中切换回“使用默认 gradle 包装器”对我不起作用,但正在运行

ionic platform remove android
ionic platform add android

为我工作

【讨论】:

仍然适用于 Ionic 3/4:支持的最低 Gradle 版本为 4.4。当前版本是 4.1。如果使用 gradle 包装器,请尝试将 E:\ionic\MyIonicProject\gradle\wrapper\gradle-wrapper.properties 中的 distributionUrl 编辑为 gradle-4.4-all.zip for gradle 4.4【参考方案7】:

另一种解决问题的方法,也适用于 Windows:

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

【讨论】:

【参考方案8】:

我很想留下这个作为评论,但我显然不够有名...

阅读您的文档后,我无法解决您关于将 Android Studio 保持为“使用默认 gradle 包装器”的建议的问题。我确实发现,在构建之前设置会话变量 CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL 让我更进一步:

root@dev:$ export CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL="https\://services.gradle.org/distributions/gradle-2.14.1-all.zip"
root@dev:$ 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()

那时我能够建造。

【讨论】:

你是我的英雄,指向 CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL 并指向 2.2.0 是关键! 从 CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL="https\://services.gradle.org/distributions/gradle-2.14.1-all.zip" 中删除双引号,因为它在 gradle-wrapper.properties 文件中添加了双引号在 distributionUrl 值中并在构建中生成错误(java.net.URISyntaxException:索引 0 处方案名称中的非法字符:“services.gradle.org/distributions/…) 是的,不要忘记使用“set”而不是“export”。即设置 CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip 不应建议对平台文件夹中的文件进行任何更新。如果您需要更新或删除和添加 android 或 ios 平台,对这些文件的更新将被覆盖。这意味着您永远无法在不丢失这些更新的情况下更新 Cordova 解决方案。

以上是关于Cordova / Ionic build android Gradle 错误:支持的最低 Gradle 版本为 2.14.1。当前版本是 2.13的主要内容,如果未能解决你的问题,请参考以下文章

ionic运行ionic build android出错

ionic cordova build 显示 lint 警告

ionic cordova build android 报错 解决

Ionic Cordova Build Android 期间面临错误

使用 CMD 行构建失败 --ionic cordova build android

安装cordova push插件后,Ionic build ios失败