android - Cordova/Ionic 构建 android Gradle 错误 : Minimum supported Gradle version is 2. 14.1。当前版本是 2.13

标签 android cordova android-studio gradle ionic-framework

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

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

$ cordova platform add android

(或 $ ionic platform add android,如果您正在构建 Ionic 应用程序)在-project/platforms/android 中创建 native 应用程序代码。

在该文件夹中,文件:/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 取决于用于构建 native 应用程序代码的 Cordova/cordova-android 版本。

当你运行时

$ cordova build android

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

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

enter image description here 如果这样做,Android Studio 将下载新版本的 Gradle 并将其存储在本地,并将项目配置为使用新下载的本地 Gradle 发行版,这是选中的“使用默认等级包装器”下方的单选选项,我结束了取消选择,因为这会导致错误。

enter image description here

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

时遇到构建错误
$ cordova build android

在命令行中。 Cordova 应用程序的解决方案是始终将 Android Studio 项目设置为“使用默认 gradle 包装器”,并忽略升级的诱人消息。如果您确实想使用更新版本的 Gradle,您可以随时更改上述文件中的 distributionUrl var(但是 Cordova 强烈反对修改平台文件夹中的代码,因为它很容易被覆盖)。在写这篇文章的时候,我不知道有没有办法在

$ cordova platform add android

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

最佳答案

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

cordova platform remove android

cordova platform add android

ionic build android

关于android - Cordova/Ionic 构建 android Gradle 错误 : Minimum supported Gradle version is 2. 14.1。当前版本是 2.13,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39354212/

相关文章:

android - ViewPager2 setOffscreenPageLimit() 似乎不起作用

android - 在 cordova 构建期间找不到 dialogCornerRadius、fontVariationSettings 和 ttcIndex

java - 如何在应用程序中使用不同语言进行 TTS 语音朗读?

android-studio - 我是 Flutter 的新手,我尝试在 Android Studio 上运行我的项目,但我在控制台中收到类似 : 的错误

java - RecyclerView 中的多个 View

android - 作者为什么要加@field :SerializedName annotation to a field in Room database?

android - 应用程序android应用程序的简单捐赠

android - native 应用程序 android 和 ios 上的文本转语音

android - 使用 Ionic 3 将文件保存到下载目录

android - 无法构建 android gradle 项目 - 对于 cordova 项目