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

cna*_*ers 28 android gradle cordova android-studio ionic-framework

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

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

$ cordova platform add android
Run Code Online (Sandbox Code Playgroud)

(或者$ 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';
Run Code Online (Sandbox Code Playgroud)

其中x和y取决于使用哪个版本的Cordova/cordova-android来构建本机应用程序代码.

当你跑步

$ cordova build android
Run Code Online (Sandbox Code Playgroud)

distributionUrlvar中指定的Gradle 版本是用于构建的版本.

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

在此输入图像描述 如果您这样做,Android Studio将下载新版本的Gradle并将其存储在本地并配置项目以使用新下载的本地Gradle分发,这是所选"使用默认等级包装"下方的无线电选项,我最终取消选择,因为这会导致错误.

在此输入图像描述

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

$ cordova build android
Run Code Online (Sandbox Code Playgroud)

在命令行中.Cordova应用程序的解决方案是始终将Android Studio项目设置为"使用默认gradle包装器"并忽略要升级的诱人消息.如果您确实想使用较新版本的Gradle,则可以随时更改上述文件中的distributionUrl var(但Cordova强烈建议不要修改平台文件夹中的代码,因为它很容易被覆盖).在撰写本文时,我无法分辨是否有办法设置Gradle版本

$ cordova platform add android
Run Code Online (Sandbox Code Playgroud)

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

zha*_*ett 17

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

cordova platform remove android

cordova platform add android

ionic build android
Run Code Online (Sandbox Code Playgroud)

  • 如果这是一个选项,我会添加"不再在Android Studio中打开项目".:) (5认同)
  • 最后一个命令现在是离子cordova构建android (4认同)

Bun*_*ler 14

我想把这个留作评论,但我显然不够信誉......

阅读完文档后,我无法解决我的问题,建议将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
Run Code Online (Sandbox Code Playgroud)

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

dependencies {
    classpath 'com.android.tools.build:gradle:2.2.0'
}
Run Code Online (Sandbox Code Playgroud)

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

repositories {
    mavenCentral();
    jcenter()
}
Run Code Online (Sandbox Code Playgroud)

我当时能够建造.


小智 7

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

ionic platform remove android
ionic platform add android
Run Code Online (Sandbox Code Playgroud)

为我工作


Cez*_*wak 6

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

cordova build android --release --CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
Run Code Online (Sandbox Code Playgroud)


Zam*_*Zam 6

你可以改变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';
Run Code Online (Sandbox Code Playgroud)

或者像其他人一样

export CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL="https\://services.gradle.org/distributions/gradle-2.14.1-all.zip"
Run Code Online (Sandbox Code Playgroud)