Cordova CLI:CPU架构不匹配

时间:2018-04-02 10:36:54

标签: android cordova cpu-architecture crosswalk cordova-cli

我一直在搜索CLI文档,SO问题,Cordova问题等等,但我很难过。

所以我使用Crosswalk(cordova createcordova platform add androidcordova plugin add cordova-plugin-crosswalk-webviewcordova build android为Android创建了一个简单的Cordova应用程序,没什么特别的。默认情况下,这会在cordova build上生成一堆apk,这很好。

但是cordova run android --device安装了arm64 apk,它在设备启动时崩溃并显示消息Mismatch of CPU Architecture - 带有商店按钮GET CROSSWALK - 这不是我想要的是什么。

我想指示cordova run android --device安装并运行armv7 apk,如果通过adb install手动安装,则运行完全正常。我怎么能这样做?

  • cordova v8.0.0
  • cordova-android v7.0.0
  • cordova-plugin-crosswalk-webview v2.4.0

注意:

  • 这是针对本地开发的debug版本,而不是release
  • 使用cordova-android@6.4.0代替7.0.0工作正常,它会安装正确的apk。

谢谢!

3 个答案:

答案 0 :(得分:3)

Crosswalk git存储库报告同样的问题:https://github.com/crosswalk-project/cordova-plugin-crosswalk-webview/issues/203

有些用户已通过打开android studio解决并更改默认架构,但我不知道什么是cordova适当的设置或配置android studio随之改变。

  

我解决了这个问题。我发现插件在我的版本中正常工作   案件。问题出在 Android Studio 上。 Android Studio 3.0.1   默认情况下使用 arm64Debug 。为了解决这个问题,我已经采取了   以下Android Studio中的步骤:

     
      
  • 点击应用Build
  •   
  • 选择“构建变体”
  •   
  • 选择armv7Debug
  •   

希望它有所帮助。

答案 1 :(得分:2)

我已经按照@Mtz的建议解决了这个问题:

1)安装https://github.com/MBuchalik/cordova-build-architecture插件,将其添加到config.xml中

<plugin name="cordova-build-architecture" spec="https://github.com/MBuchalik/cordova-build-architecture.git#v1.0.4" source="git" />

2)将此首选项添加到config.xml中的android部分:

<preference default="arm" name="buildArchitecture" />

3)

cordova clean
cordova build (This step only generates one apk, armv7)
cordova run --devices

run命令将仅安装armv7版本,请记住先尝试从设备中删除所有apk

答案 2 :(得分:1)

默认情况下,Cordova会生成一个build.gradle文件,该文件会根据您安装的程序行为或插件而更改。

如果您只需要为armv7安装/运行apk以进行调试,请将 cdvBuildMultipleApks 属性设置为false。

查看此Setting Gradle Properties cdvBuildMultipleApks 属性,另外,Build Environment UserGuide将其设置在当前位置。

这也可能是有帮助的:here