I've been searching through CLI docs, SO questions, Cordova issues and more for quite some time, but I'm stumped.
So I've created a simple Cordova app for Android using Crosswalk ( cordova create
, cordova platform add android
, cordova plugin add cordova-plugin-crosswalk-webview
, cordova build android
, nothing fancy). This, by default, generates a bunch of apk's on cordova build
which is fine.
But then cordova run android --device
installs the arm64
apk which crashes at startup on my device with the message Mismatch of CPU Architecture
- with a button to the store to GET CROSSWALK
- which is not what I want.
I'd like to instruct cordova run android --device
to install and run the armv7
apk, which runs perfectly fine if installed manually via adb install
. How can I do this?
Notes:
debug
build for local development, not for release
. cordova-android@6.4.0
instead of 7.0.0
works fine, it installs the correct apk. Thank you!
Crosswalk git repository report same issue: https://github.com/crosswalk-project/cordova-plugin-crosswalk-webview/issues/203
Some user has resolved by open android studio and change default architecture, but i dont know what cordova suitable settings or configurations android studio change with that.
I solved the problem. I found that the plugin works correctly in my case. The problem was with the Android Studio . Android Studio 3.0.1 uses arm64Debug by default. To solve this problem I have taken the following steps in the Android Studio:
- click on the app Build
- Select Build Variant
- Select armv7Debug
Hope it helps.
I've resolved this issue follow @Mtz recommendation:
1) Install https://github.com/MBuchalik/cordova-build-architecture plugin adding to config.xml like this
<plugin name="cordova-build-architecture" spec="https://github.com/MBuchalik/cordova-build-architecture.git#v1.0.4" source="git" />
2) Add this preference to android section in config.xml:
<preference default="arm" name="buildArchitecture" />
3)
cordova clean
cordova build (This step only generates one apk, armv7)
cordova run --devices
The run command will install only armv7 version, remember to remove all apk from your device before trying this
By default, Cordova generate a build.gradle file which changes according to your program behavior or plugins you installed.
In case you only need to install/run your apk for armv7 for debug purpose set the cdvBuildMultipleApks property to false.
check out this Setting Gradle Properties for cdvBuildMultipleApks property and allso, Build Environment UserGuide for setting it in the currect place.
this may allso be helpfull aswell: here
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.