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 

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

  • 离子 - 闪屏适用于iOS,但不适用于Android
  • 没有显示离子应用程序的启animation面
  • Ionic 2 / Ionic 3:如何获取设备的当前位置
  • 我的cordova webview应用程序比在同一部手机上的Android浏览器中慢得多
  • cordovabuild立 - 释放安卓总是select最高的api水平
  • 错误:源路径不存在:resources \ android \ icon \ drawable-hdpi-icon.png
  • 键盘消失后的Android白色背景
  • 通过logcat在Android上debuggingWebView(Ionic)应用程序
  • 我只想留下这个评论,但我显然不够有信誉…

    在阅读你的文档之后,我无法解决我的问题,因为你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