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

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

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

$ cordova platform add android 

(或$ ionic platform add android ,如果你正在构建一个Ionic应用程序)在-project / platforms / android上创建本机应用程序代码。

在该文件夹中,文件:/the-project/platforms/android/cordova/lib/builders/GradleBuilder.js导出一个variables,如下所示:

 var distributionUrl = process.env['CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL'] || 'http\\://services.gradle.org/distributions/gradle-xy-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强烈建议不要修改平台文件夹中的代码,因为它很容易被覆盖)。 在撰写本文时,我无法分辨是否有办法设置Gradle版本

 $ cordova platform add android 

步骤,这是你想要这样做,所以你永远不会直接修改项目/平台内的代码

Related of "Cordova / Ionic构建android Gradle错误:支持的最低Gradle版本是2.14.1。 当前版本是2.13"

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

 cordova platform remove android cordova platform add android ionic build android 

我想把这个留作评论,但我显然没有足够的信誉……

阅读完文档之后,我无法解决我的问题,建议将Android Studio保持为“使用默认的gradle包装器”。 我find的是在构建之前设置会话variablesCORDOVA_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 

我接下来要做的就是编辑/platforms/android/build.gradle/platforms/android/CordovaLib/build.gradle并确保它们都指向有效的gradle插件版本。

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

…并在/platforms/android/CordovaLib/build.gradle我在存储库中添加了jcenter(因为maven.org似乎没有2.2.0)

 repositories { mavenCentral(); jcenter() } 

我当时能够建造。

切换回“使用默认gradle包装器”对我的离子1项目不起作用,但是运行

 ionic platform remove android ionic platform add android 

为我工作

你可以改变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" 

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

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

我想延长@bungler的答案。

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

用于gradle的Gradle vs Android插件 – 兼容版本列表

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

所以最终设置如下:

对于Mac

第1步:在envvariables中添加以下内容:

选项a)更新envvariables:

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

要么

选项b)你可以下载gradle 文件并将其放在/platforms/android/gradle/并更新envvariables:

 export CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL="../gradle-3.3-all.zip" 

第2 /platforms/android/CordovaLib/build.gradle :在/platforms/android/CordovaLib/build.gradle更新以下/platforms/android/CordovaLib/build.gradle

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

这对我有用。

如有以下错误:

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

这个命令对我有用:

 ionic cordova platform update android