I have added Crosswalk to my ionic project. When i do ionic build android
it outputs two separate APK files, one for armv7 and one for x86.
However i want one single apk file bundling two architectures together.
I tried setting BUILD_MULTIPLE_APKS = false
but it's still building two separate apks.
There is a post here saying :
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
But i don't have any gradle.properties file in my platforms/android/ folder, i have a project.properties file and there is no cdvBuildMultipleApks=true
line in it to comment out.
I tried to manually create a gradle.properties file and putting cdvBuildMultipleApks=false
in there but still two outputs.
Any ideas how to achieve this?
Update:
My Cordova version is 5.1.1
Solution:
What did work for me as suggested by @mudasserajaz and here, was to :
build-extras.gradle
inside my /platform/android/
directory.ext.cdvBuildMultipleApks=false
inside it.ionic build android --release
then and Voila, it worked.@mudasserajaz suggested the same thing except variable name is cdvBuildMultipleApks=false
so in case it didn't work out for you, don't forget the ext
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
Here are steps to do that:
build-extras.gradle
and put it into platforms/android/
. Add line cdvBuildMultipleApks=false
into build-extras.gradle
. ionic run android
, it will create combined single build android-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.)
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With