我尝试在 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/