我一直在搜索CLI文档,SO问题,Cordova问题等等,但我很难过。
所以我使用Crosswalk(cordova create
,cordova platform add android
,cordova plugin add cordova-plugin-crosswalk-webview
,cordova 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
手动安装,则运行完全正常。我怎么能这样做?
注意:
debug
版本,而不是release
。cordova-android@6.4.0
代替7.0.0
工作正常,它会安装正确的apk。谢谢!
答案 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