Building combined armv7/x86 apk after Crosswalk integration in an Ionic project
Solution 1:
Well I just changed my config.xml
following property to false
and it combined the build apk.
from
<preference name="xwalkMultipleApk" value="true"/>
to
<preference name="xwalkMultipleApk" value="false"/>
My systems 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
Solution 2:
Here are steps to do that:
- Make a file
build-extras.gradle
and put it intoplatforms/android/
. Add linecdvBuildMultipleApks=false
intobuild-extras.gradle
. - Now run
ionic run android
, it will create combined single buildandroid-debug.apk
.
build.gradle
will automaticaly import build-extras.gradle
,if that is defined.You can see code of build.gradle
doing this :
def hasBuildExtras = file('build-extras.gradle').exists()
if (hasBuildExtras) {
apply from: 'build-extras.gradle'
}
Plus these instructions are clearly mentioned in build.gradle
line 57 :
Configuration properties. Set these via environment variables, build-extras.gradle, or gradle.properties.
NOTE: Before you follow these steps, remove platform folder and install again.
Observations: Once you have done these steps, and again at some point, you want to make separate builds, then setting cdvBuildMultipleApks=true
or commenting out sometimes won't work, you will simply have to install platform again. (P.S this is my personal observation, otherwise deleting build-extras.gradle
should be enough.)
Solution 3:
As of today, in 2018, we probably can ignore x86 mobile platform, as there's indeed hardly any mobile using Intel CPU.
This has the advantage of a smaller APK. A single-platform APK is smaller than the multi-platform APK.