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

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

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

$ cordova platform add android 

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

在该文件夹内,文件:/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的哪个版本来构build原生应用程序代码。

当你跑步

 $ cordova build android 

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

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

在这里输入图像说明 如果你这样做,Android Studio将下载一个新版本的Gradle并将其存储在本地,并将项目configuration为使用新下载的本地Gradle发行版,这是选定的“使用默认等级包装器”下方的收音机选项,取消select,因为这会导致错误。

在这里输入图像说明

这会导致问题,因为Android Studio和Cordova现在将尝试使用不同版本的Gradle构build应用程序,并且您将在Android Studio中获得构build错误,

 $ cordova build android 

在命令行中。 Cordova应用程序的解决scheme是始终将Android Studio项目设置为“使用默认gradle包装”,并忽略要升级的诱人消息。 如果你想使用更新版本的Gradle,你可以随时更改上面提到的文件中的distributionUrl var(但是Cordova强烈build议不要修改platforms文件夹中的代码,因为它很容易被覆盖)。 在写这个的时候,我不知道是否有一种方法来设置Gradle版本

 $ cordova platform add android 

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

Solutions Collecting From Web of "Cordova / Ionic构buildAndroid Gradle错误:支持的最小Gradle版本是2.14.1。 当前版本是2.13"

我只想留下这个评论,但我显然不够有信誉…

在阅读你的文档之后,我无法解决我的问题,因为你build议让Android Studio保持“使用默认的gradle wrapper”。 我所发现的是在构build之前设置会话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 

接下来我要做的是编辑<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() } 

那时我能够build立起来。

切换回“使用默认的gradle wrapper”在我的离子1项目上不起​​作用,但是正在运行

 ionic platform remove android ionic platform add android 

为我工作

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

 cordova platform remove android cordova platform add android ionic build android 

你可以改变platform / android / cordova / lib / builders / GradleBuilder.js中的值

您更改的值,当您重新安装Android平台时,它将由最新的gradle zipreplace,所以您不必担心更改它

 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 vs Android插件for gradle – 兼容版本列表

对于当前版本的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 文件并将其放置在<project>/platforms/android/gradle/并更新envvariables:

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

第2 <project>/platforms/android/CordovaLib/build.gradle :在<project>/platforms/android/CordovaLib/build.gradle更新以下<project>/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

这个命令为我工作:

 ionic cordova platform update android