我已将Crosswalk添加到我的离子项目中。当我执行ionic build android
时,它会输出两个单独的APK文件,一个用于armv7,另一个用于x86。
但是,我想要一个单独的apk文件将两个体系结构捆绑在一起。
我尝试设置BUILD_MULTIPLE_APKS = false
,但它仍在构建两个单独的apks。
有一篇帖子here说:
我花了一分钟但你可以通过评论获得单个构建文件 输出中的cdvBuildMultipleApks = true行 平台/机器人/ gradle.properties
干杯
但是我的平台/ android /文件夹中没有任何gradle.properties文件,我有一个project.properties文件,其中没有cdvBuildMultipleApks=true
行可以注释掉。
我尝试手动创建一个gradle.properties文件并将cdvBuildMultipleApks=false
放在那里但仍有两个输出。
任何想法如何实现这一目标?
更新:
我的Cordova版本是5.1.1
解决方案:
根据@mudasserajaz和here的建议,对我有用的是:
build-extras.gradle
目录中创建名为/platform/android/
的文件。ext.cdvBuildMultipleApks=false
放入其中。ionic build android --release
然后和Voila一起工作。 @mudasserajaz建议同样的事情,除了变量名称是cdvBuildMultipleApks=false
所以如果它没有为你工作,请不要忘记ext
答案 0 :(得分:44)
我刚刚将 config.xml
以下属性更改为false
,并将其与构建apk结合起来。
这
<preference name="xwalkMultipleApk" value="true"/>
到
<preference name="xwalkMultipleApk" value="false"/>
我的系统ionic info
返回
Your system information:
Cordova CLI: 6.1.1
Gulp version: CLI version 3.9.1
Gulp local: Local version 3.9.1
Ionic CLI Version: 1.7.16
Ionic App Lib Version: 0.7.3
OS:
Node Version: v4.4.4
答案 1 :(得分:41)
以下是执行此操作的步骤:
build-extras.gradle
并将其放入platforms/android/
。将行cdvBuildMultipleApks=false
添加到build-extras.gradle
。 ionic run android
,它将创建组合的单个构建android-debug.apk
。 build.gradle
将自动导入build-extras.gradle
,如果已定义。您可以看到build.gradle
的代码执行此操作:
def hasBuildExtras = file('build-extras.gradle').exists()
if (hasBuildExtras) {
apply from: 'build-extras.gradle'
}
此外,build.gradle
第57行明确提到了这些说明:
配置属性。通过环境变量设置这些, build-extras.gradle或gradle.properties。
注意:在执行这些步骤之前,请删除平台文件夹并重新安装。
观察:完成这些步骤后,您需要进行单独的构建,然后设置cdvBuildMultipleApks=true
或注释掉有时不会工作,你只需要再次安装平台。 (P.S这是我个人观察,否则删除build-extras.gradle
就足够了。)
答案 2 :(得分:3)
截至今天,在2018年,我们可能会忽略x86移动平台,因为几乎没有任何移动设备使用英特尔CPU。
这具有较小的APK的优势。单平台APK比多平台APK小。
答案 3 :(得分:0)
确保检查输出文件夹。
我注意到&#34; cordova build&#34;在添加到我的build-extra.gradle之后仍然输出arm7和x86但输出文件夹包含&#34; android-release.apk&#34;同样。
从输出文件夹中删除arm7和x86 APK(项目/ platforms / android / build / outputs / apk /)
它立即阻止他们被#cor; corodva build&#34;。
显示出来希望这有帮助。