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 cordova build 显示 lint 警告
ionic cordova build android 报错 解决
Ionic Cordova Build Android 期间面临错误