Cordova CLI:CPU 架构不匹配
Cordova CLI: Mismatch of CPU architecture
我一直在搜索 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,该 apk 在我的设备上启动时崩溃并显示消息 Mismatch of CPU Architecture
- 带有商店按钮 GET CROSSWALK
- 这不是我想要的。
我想指示 cordova run android --device
安装 运行 armv7
apk,如果通过 adb install
手动安装,运行 完全没问题.我该怎么做?
- cordova v8.0.0
- cordova-androidv7.0.0
- cordova-plugin-crosswalk-webview v2.4.0
备注:
- 这是针对本地开发的
debug
构建,而不是 release
。
- 使用
cordova-android@6.4.0
而不是 7.0.0
效果很好,它会安装正确的 apk。
谢谢!
默认情况下,Cordova 会生成一个 build.gradle 文件,该文件会根据您的程序行为或安装的插件而变化。
如果您只需要 install/run 用于 armv7 的 apk 用于调试目的,请将 cdvBuildMultipleApks 属性 设置为 false。
查看此 Setting Gradle Properties for cdvBuildMultipleApks property and allso, Build Environment UserGuide 以将其设置在当前位置。
这也可能有帮助:
Crosswalk git 存储库报告相同问题:https://github.com/crosswalk-project/cordova-plugin-crosswalk-webview/issues/203
一些用户通过打开 android studio 并更改默认架构来解决,但我不知道 cordova 适合的设置或配置 android studio 随之改变。
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
希望对您有所帮助。
我已经按照@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
运行 命令只会安装 armv7 版本,请记住在尝试此操作之前从您的设备中删除所有 apk
我一直在搜索 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,该 apk 在我的设备上启动时崩溃并显示消息 Mismatch of CPU Architecture
- 带有商店按钮 GET CROSSWALK
- 这不是我想要的。
我想指示 cordova run android --device
安装 运行 armv7
apk,如果通过 adb install
手动安装,运行 完全没问题.我该怎么做?
- cordova v8.0.0
- cordova-androidv7.0.0
- cordova-plugin-crosswalk-webview v2.4.0
备注:
- 这是针对本地开发的
debug
构建,而不是release
。 - 使用
cordova-android@6.4.0
而不是7.0.0
效果很好,它会安装正确的 apk。
谢谢!
默认情况下,Cordova 会生成一个 build.gradle 文件,该文件会根据您的程序行为或安装的插件而变化。
如果您只需要 install/run 用于 armv7 的 apk 用于调试目的,请将 cdvBuildMultipleApks 属性 设置为 false。
查看此 Setting Gradle Properties for cdvBuildMultipleApks property and allso, Build Environment UserGuide 以将其设置在当前位置。
这也可能有帮助:
Crosswalk git 存储库报告相同问题:https://github.com/crosswalk-project/cordova-plugin-crosswalk-webview/issues/203
一些用户通过打开 android studio 并更改默认架构来解决,但我不知道 cordova 适合的设置或配置 android studio 随之改变。
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
希望对您有所帮助。
我已经按照@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
运行 命令只会安装 armv7 版本,请记住在尝试此操作之前从您的设备中删除所有 apk