androidcordovacpu-architecturecrosswalkcordova-cli

Cordova CLI: Mismatch of CPU architecture


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:

Thank you!


Solution

  • 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