通过 adb install -r
将 apk 安装到手机的时候报错:
Failure [INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113]
原因:
ndk {
abiFilters "armeabi-v7a"
// abiFilters "x86"
}
是因为:
由于安装的APP中使用了与当前CPU架构不一致的native libraries,所以导致报错,因为现在绝大多数的智能手机还都是采用ARM架构的,虽然android是支持ARM和x86架构,但是它们的指令集是有差别的,APP在开发的时候使用的是ARM的本地库,而我们在用AVD创建模拟器的时候使用的是x86的CPU,因此导致报错。所以,如果APP是在x86架构下编译的我们就创建x86cpu的模拟器,如果APP是在ARM架构编译的我们就创建ARMcpu的模拟器。
也就是打包生成的 apk 所选择的 ndk 与 手机系统的 ndk 不兼容导致的,只要修改 ndk 的类型重新打个包就可以了