Failure [INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113]
1.最近在用Genymotion安装第三方apk时报错,报错提示的
2.问题原因
由于安装的APP中使用了与当前CPU架构不一致的native libraries,所以导致报错,因为现在绝大多数的智能手机还都是采用ARM架构的,虽然android是支持ARM和x86架构,但是它们的指令集是有差别的,APP在开发的时候使用的是ARM的本地库,而我们在用AVD创建模拟器的时候使用的是x86的CPU,因此导致报错。所以,如果APP是在x86架构下编译的我们就创建x86cpu的模拟器,如果APP是在ARM架构编译的我们就创建ARMcpu的模拟器。
————————————————
版权声明:本文为CSDN博主「繁城落叶」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Leafage_M/article/details/86675699
问题已经很清楚了,是当前的app使用了native libraries与模拟器的CPU架构不一致所导致的,而genymotion模拟器默认创建的只支持x86架构而不支持arm架构,这样看来这个app使用了支持arm架构的一些库,所以在x86上会无法安装。事实就是源码中使用了.so文件,当一个应用安装在设备上,只有该设备支持的CPU架构对应的.so文件会被安装。所以对应的arm部分文件无法安装从而导致安装失败。
3.解决办法
让genymotion模拟器支持arm架构。
既然创建的是x86模拟器,那么需要使用转换包使其能够支持arm。
这里提供网上的一些资源:
https://www.jianshu.com/p/97b8250f359e
ARM_Translation_Marshmallow 放入虚拟机当中
然后重启手机,可能有点慢,然后再次安装就可以了