【发布时间】:2017-01-14 05:14:49
【问题描述】:
这是我要记录的上述错误的解决方案。我发现了其他类似的帖子,但没有人描述此错误如何与 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 强烈反对修改平台文件夹中的代码,因为它很容易被覆盖)。在写这篇文章的时候,我不知道有没有办法在
$ cordova platform add android
步骤,这是您想要这样做的时候,因此您永远不会直接修改项目/平台内的代码
【问题讨论】:
标签: android cordova android-studio gradle ionic-framework