在 Ionic 项目中集成 Crosswalk 后构建组合 armv7/x86 apk
Building combined armv7/x86 apk after Crosswalk integration in an Ionic project
我已将 Crosswalk 添加到我的离子项目中。当我执行 ionic build android
时,它会输出两个单独的 APK 文件,一个用于 armv7,一个用于 x86。
但是我想要一个将两种架构捆绑在一起的 apk 文件。
我尝试设置 BUILD_MULTIPLE_APKS = false
但它仍在构建两个单独的 apks。
有句posthere说法:
Took me a minute but you can get the single build file by commenting
out the cdvBuildMultipleApks=true line in the
platforms/android/gradle.properties
Cheers
但是我的 platforms/android/ 文件夹中没有任何 gradle.properties 文件,我有一个 project.properties 文件并且其中没有 cdvBuildMultipleApks=true
行注释掉。
我尝试手动创建一个 gradle.properties 文件并将 cdvBuildMultipleApks=false
放入其中,但仍然有两个输出。
有什么实现方法吗?
更新:
我的 Cordova 版本是 5.1.1
解法:
@mudasserajaz 和 here 建议对我有用的是:
- 在我的
/platform/android/
目录中创建一个名为 build-extras.gradle
的文件。
- 将
ext.cdvBuildMultipleApks=false
放入其中。
ionic build android --release
然后,瞧,成功了。
@mudasserajaz 建议除了变量名是 cdvBuildMultipleApks=false
之外,还有同样的事情,所以如果它不适合你,请不要忘记 ext
执行此操作的步骤如下:
- 制作文件
build-extras.gradle
并放入platforms/android/
。将行 cdvBuildMultipleApks=false
添加到 build-extras.gradle
。
- 现在运行
ionic run android
,它将创建合并的单一构建android-debug.apk
。
build.gradle
将自动导入 build-extras.gradle
,如果是 defined.You 可以查看 build.gradle
的代码:
def hasBuildExtras = file('build-extras.gradle').exists()
if (hasBuildExtras) {
apply from: 'build-extras.gradle'
}
此外,build.gradle
第 57 行中明确提到了这些说明:
Configuration properties. Set these via environment variables,
build-extras.gradle, or gradle.properties.
注意:在执行这些步骤之前,删除平台文件夹并重新安装。
观察: 一旦你完成了这些步骤,又在某个时候,你想要单独构建,那么设置 cdvBuildMultipleApks=true
或注释掉有时不会'行不通,您只需重新安装平台即可。 (P.S这是我的个人观察,否则删除build-extras.gradle
应该就可以了。)
好吧,我刚刚将 config.xml
跟随 属性 更改为 false
,它结合了构建 apk。
来自
<preference name="xwalkMultipleApk" value="true"/>
到
<preference name="xwalkMultipleApk" value="false"/>
我的系统ionic info
returns
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
确保检查输出文件夹。
我注意到 "cordova build" 在添加到我的 build-extra.gradle 后仍然输出 arm7 和 x86,但输出文件夹也包含 "android-release.apk"。
正在从输出文件夹中删除 arm7 和 x86 APK (project/platforms/android/build/outputs/apk/)
它立即阻止了它们被 "corodva build" 显示。
希望这对您有所帮助。
到今天为止,在 2018 年,我们可能可以忽略 x86 移动平台,因为确实几乎没有任何移动设备使用 Intel CPU。
这样做的好处是 APK 更小。单平台 APK 比多平台 APK 小。
我已将 Crosswalk 添加到我的离子项目中。当我执行 ionic build android
时,它会输出两个单独的 APK 文件,一个用于 armv7,一个用于 x86。
但是我想要一个将两种架构捆绑在一起的 apk 文件。
我尝试设置 BUILD_MULTIPLE_APKS = false
但它仍在构建两个单独的 apks。
有句posthere说法:
Took me a minute but you can get the single build file by commenting out the cdvBuildMultipleApks=true line in the platforms/android/gradle.properties
Cheers
但是我的 platforms/android/ 文件夹中没有任何 gradle.properties 文件,我有一个 project.properties 文件并且其中没有 cdvBuildMultipleApks=true
行注释掉。
我尝试手动创建一个 gradle.properties 文件并将 cdvBuildMultipleApks=false
放入其中,但仍然有两个输出。
有什么实现方法吗?
更新:
我的 Cordova 版本是 5.1.1
解法:
@mudasserajaz 和 here 建议对我有用的是:
- 在我的
/platform/android/
目录中创建一个名为build-extras.gradle
的文件。 - 将
ext.cdvBuildMultipleApks=false
放入其中。 ionic build android --release
然后,瞧,成功了。
@mudasserajaz 建议除了变量名是 cdvBuildMultipleApks=false
之外,还有同样的事情,所以如果它不适合你,请不要忘记 ext
执行此操作的步骤如下:
- 制作文件
build-extras.gradle
并放入platforms/android/
。将行cdvBuildMultipleApks=false
添加到build-extras.gradle
。 - 现在运行
ionic run android
,它将创建合并的单一构建android-debug.apk
。
build.gradle
将自动导入 build-extras.gradle
,如果是 defined.You 可以查看 build.gradle
的代码:
def hasBuildExtras = file('build-extras.gradle').exists()
if (hasBuildExtras) {
apply from: 'build-extras.gradle'
}
此外,build.gradle
第 57 行中明确提到了这些说明:
Configuration properties. Set these via environment variables, build-extras.gradle, or gradle.properties.
注意:在执行这些步骤之前,删除平台文件夹并重新安装。
观察: 一旦你完成了这些步骤,又在某个时候,你想要单独构建,那么设置 cdvBuildMultipleApks=true
或注释掉有时不会'行不通,您只需重新安装平台即可。 (P.S这是我的个人观察,否则删除build-extras.gradle
应该就可以了。)
好吧,我刚刚将 config.xml
跟随 属性 更改为 false
,它结合了构建 apk。
来自
<preference name="xwalkMultipleApk" value="true"/>
到
<preference name="xwalkMultipleApk" value="false"/>
我的系统ionic info
returns
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
确保检查输出文件夹。
我注意到 "cordova build" 在添加到我的 build-extra.gradle 后仍然输出 arm7 和 x86,但输出文件夹也包含 "android-release.apk"。
正在从输出文件夹中删除 arm7 和 x86 APK (project/platforms/android/build/outputs/apk/)
它立即阻止了它们被 "corodva build" 显示。
希望这对您有所帮助。
到今天为止,在 2018 年,我们可能可以忽略 x86 移动平台,因为确实几乎没有任何移动设备使用 Intel CPU。
这样做的好处是 APK 更小。单平台 APK 比多平台 APK 小。