75 qt安装APP 报:INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113

文章讲述了同事更换64位手机后,因系统与APP安装包ABIs不匹配导致的安装失败问题。通过在QtCreator中调整编译选项,将arm64-v8a勾选以生成兼容的安装包,解决了此问题。

1 引言

        最近同事换了新手机:64位高性能处理器手机!原先编译APP在他手机上安装不了,原先的应该是32位的安装包,因此需要重新编译程序才能将APP安装到他手机上。

        于是发现了这个问题,特此记录。

2 问题出现

        如下所示,在安装APP时报:debug.apk: Failure [INSTALL_FAILED_NO_MATCHING_ABIS: INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113]

Performing Streamed Install
adb: failed to install F:/xxx/android-build-debug.apk: Failure [INSTALL_FAILED_NO_MATCHING_ABIS: INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113]

查阅网友所分享的原因:当前的手机为64位系统,支持的ABIS与安装包所需要ABIS不一致导致的报错!

因此需要更改编译选项:在qtcreator界面点击 项目--> build & Run -->Build的步骤(点击详情展开)-->将arm64-v8a勾选上,重新编译安装即可。
如下所示:

如以上配置,即可解决此问题。

### 问题分析 错误信息 `INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113` 表明 Android 系统在安装应用时无法找到与设备架构兼容的原生库(native libraries)。这通常发生在应用仅包含 32 位或 64 位支持,而目标设备不匹配的情况下。Android 支持多种 ABI(Application Binary Interface),包括 `armeabi-v7a`、`arm64-v8a`、`x86` 和 `x86_64`。 ### 解决方案 #### 1. 配置构建设置以支持多个 ABI 确保编译器生成的应用程序支持多个 ABI,特别是 `arm64-v8a`,这是现代 64 位 Android 设备的标准架构。 - **Qt Creator 用户**:进入项目设置,选择 *Build & Run* -> *Build* 步骤,展开详情并勾选 `arm64-v8a` 选项,重新编译并安装应用程序[^1]。 - **Android Studio 用户**:在 `build.gradle` 文件中配置 ABI 切分支持: ```gradle android { ... splits { abi { enable true reset() include 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a' universalApk true } } } ``` 上述配置将生成一个包含所有指定架构的通用 APK,从而提升设备兼容性[^4]。 #### 2. 检查依赖库的 ABI 支持 如果使用了第三方库,确认这些库是否提供对所有主要 ABI 的支持。缺失某些 ABI 的 `.so` 文件会导致安装失败。可以通过解压 APK 并检查 `lib/` 目录下的子目录(如 `armeabi-v7a` 或 `arm64-v8a`)来验证是否存在对应的 `.so` 文件[^5]。 #### 3. 卸载旧版本应用 有时旧版本应用可能已安装,并且其 ABI 支持与当前构建不一致。尝试卸载旧版本再重新安装新 APK。系统提示如下时,可以选择继续卸载: > "Installation failed with message INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113. It is possible that this issue is resolved by uninstalling an existing version of the apk if it is present, and then re-installing."[^3] #### 4. 使用命令行工具手动安装 通过 ADB 手动安装 APK 以获取更详细的错误输出,有助于排查具体原因: ```bash adb install -r app-release.apk ``` 若安装失败,可通过以下命令清除应用数据后再次尝试: ```bash adb shell pm clear <package_name> adb uninstall <package_name> adb install -r app-release.apk ``` #### 5. 查阅官方文档与社区资源 建议参考以下资源进一步了解 ABI 分割和兼容性处理: - [Android ABI 文档](http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits) - [Stack Overflow 关于 INSTALL_FAILED_NO_MATCHING_ABIS 的讨论](https://stackoverflow.com/questions/24572052/install-failed-no-matching-abis-when-install-apk) --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值