繁体   English   中英

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

这是我要记录的上述错误的解决方案。 我发现了其他类似的帖子,但没有人描述此错误如何与 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 强烈反对修改平台文件夹中的代码,因为它很容易被覆盖)。 在撰写本文时,我无法确定是否有办法将 Gradle 版本设置为

$ cordova platform add android

步骤,这是您想要这样做的时候,因此您永远不会直接修改项目/平台内的代码

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

cordova platform remove android

cordova platform add android

ionic build android

我很想把它作为评论留下,但我显然不够有名气......

阅读您的文档后,我无法通过您建议将 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()
}

那时我能够建造。

在我的 ionic 1 项目中切换回“使用默认 gradle 包装器”对我不起作用,但正在运行

ionic platform remove android
ionic platform add android

为我工作

您可以更改平台/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 的 android 插件的兼容版本感到困惑。 以下链接包含兼容版本映射列表:

Gradle vs Android plugin for gradle - 兼容版本列表

对于当前版本的 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文件并将其放在<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'
  }
}

这对我有用。

对于跟随错误:

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

这个命令对我有用:

ionic cordova platform update android

在跟进 Chuck Holbrooks 的回答时,通过以下解决方案,我在尝试再次添加 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 

如果您运行以下命令,它将解决从命令行构建 APK 的问题

ionic cordova platform remove android
ionic cordova platform add android 

但是,在 android studio 中运行/构建它后,版本不匹配错误会返回......

为了解决这个问题,在 android studio 中,您不应该更新项目 gradle 版本控制,而是转到文件 > 项目结构 > SDK 位置 > Gradle 设置...,然后告诉它从指定位置使用 Gradle,该位置应该是 C:/ Gradle/gradle-7.4.2 或您拥有的任何版本。

通过这样做,您将能够使用 ionic 从命令行以及在 android studio 中构建 APK。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM