Android gradle 使用 cordova 5.0.0 构建风格

标签 android cordova

我尝试在 build-extras.gradle 上添加一些风格,但在这样做之后 cordova run android 已停止工作。

是否可以使用新的基于 gradle 的构建系统在 Android 上实现不同的构建风格?

最佳答案

我遇到了同样的问题,我认为我找到了一个可行的解决方案(尽管我宁愿在 cordova 本身中看到一个解决方案)。

问题是 cordova 构建脚本(在运行阶段)假定如果您有多个 APK(如果您添加 ProductFlavors 就是这种情况),其中之一必须是特定于体系结构的。结果是一个空列表:

Built the following apk(s):

cordova-app/platforms/android/cordova/node_modules/q/q.js:126 throw e;

^ Error: Could not find apk architecture: x86 build-type: debug

我现在所做的是将以下内容添加到我的 build-extras.gradle:

android.variantFilter { variant ->
  def flavor = variant.flavors.get(0).name
  if (project.hasProperty("activeFlavor")) {
    if (flavor != project.getProperty("activeFlavor")) {
      variant.setIgnore(true)
    }
  }
  else {
    if (flavor != "mydefaultproductflavor") {
      variant.setIgnore(true)
    }
  }
}

当我不想要我的默认 flavor 时,我需要使用以下方法指定 flavor :

cordova run android -- --gradleArg="-PactiveFlavor=myotherflavor"

对于那些不知道的人,-- 分隔符是一个特殊符号,按照惯例,它告诉程序之后停止解析 args。 Cordova 声明您应该使用双 -- 来指示这些是特定于平台的参数。[1]很高兴知道您是否需要将参数从 ionic 传递给 cordova。 [2]

不幸的是,cordova 构建过程不喜欢我在没有清理的情况下切换风格(从那时起我的输出目录中又有多个 .apk 文件)。因此,当您首先切换时执行 ./platforms/android/cordova/clean 以删除旧的 .apk 文件。

[1] See the note for using flags when signing an app

[2] See for more details the comment of dwieeb on ionic-cli issue 2254.

关于Android gradle 使用 cordova 5.0.0 构建风格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30267858/

相关文章:

安卓 ==> Ant 和混淆器?

android - 在 Qt 项目中引用 Google Play 库

android - 错误 : cordova platform add android

javascript - 使用 parse.com 的 Phonegap 推送通知

android - 在英特尔 xdk : do you need to build for cordova to use cordova apis 中构建应用程序

java - 房间数据库未实现

android - 如何打开模拟器屏幕?

android - Appcompat Activity 提供版本 24.0.0 的问题

javascript - 如何在开始之前加载 HTML5 Canvas 游戏?

android - 使用cordova (resolveLocalFileSystemURL) 读取内部存储文件android