Failure [INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113]
最新推荐文章于 2021-08-29 20:58:24 发布
最新推荐文章于 2021-08-29 20:58:24 发布

使用AndroidStudio在genymotion模拟器上安装一个app的时候出现了这个错误报告:

刚开始没有仔细看前面的error提示,还以为是之前的数据没有清理干净,于是直接点了OK并且见到了一个之前遇到过的错误提示,

在这里插入图片描述
下意识的按照之前的错误进行处理排查。但是没有成效,在把模拟器删除重新创建之后还是出现这个问题,意识到这是一个全新的问题。使用本人的Android真机运行无误,那么问题就是出在了模拟器身上。

2.问题原因。

于是查了查发现:

由于安装的APP中使用了与当前CPU架构不一致的native libraries,所以导致报错,因为现在绝大多数的智能手机还都是采用ARM架构的,虽然android是支持ARM和x86架构,但是它们的指令集是有差别的,APP在开发的时候使用的是ARM的本地库,而我们在用AVD创建模拟器的时候使用的是x86的CPU,因此导致报错。所以,如果APP是在x86架构下编译的我们就创建x86cpu的模拟器,如果APP是在ARM架构编译的我们就创建ARMcpu的模拟器。

问题已经很清楚了,是当前的app使用了native libraries与模拟器的CPU架构不一致所导致的,而genymotion模拟器默认创建的只支持x86架构而不支持arm架构,这样看来这个app使用了支持arm架构的一些库,所以在x86上会无法安装。事实就是源码中使用了.so文件,当一个应用安装在设备上,只有该设备支持的CPU架构对应的.so文件会被安装。所以对应的arm部分文件无法安装从而导致安装失败。

3.解决办法。

那么解决问题可以分为两个方法:

以上两种方法均可解决本人所遇到的问题。

参考文章:
https://stackoverflow.com/questions/24572052/install-failed-no-matching-abis-when-install-apk
http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits (ABI相关知识)
https://www.cnblogs.com/janehlp/p/7473240.html (.so文件相关知识)
https://www.jb51.net/article/99714.htm

安装失败,消息未能完成会话: INSTALL _ FAILED _NO_ MATCHING _ ABI S:未能提取本机库,res=- 113 。 如果apk的现有版本存在,那么通过卸载该版本来解决这个问题是可能的,然后重新安装。 警告:卸载将删除应用程序数据! 是否要卸载现有应用程序? 我的原因是: 使用了百度地图: 忘了添加对应的CPU的类型库  解决方法:在build.grad... 报错如下: :-1: error : adb: failed to install /Users/fanpink/Projects/QT/build-untitled1- Android _Qt_5_15_2_Clang_Multi_ Abi -Debug/ android -build//build/outputs/apk/debug/ android -build-debug.apk: Failu re [ INSTALL _ FAILED _NO_ MATCHING _AB 有时候将写好的程序运行到 Android 模拟器上的时候,可能会遇到" Install ation failed with message INSTALL _ FAILED _NO_ MATCHING _ ABI S: Failed to extract native libraries , res=- 113 ." 的错误, 导致这个错误的原因是你的应用使用了原生库(NDK, Native Lib),这些库的编译目标通常是arm架构的cpu,在x86上运行就会报这样的错误。 换成arm架构的模拟器:既然x8