在工程中如果用了so库,在有的机器上安装apk可能会报这个错误,apk安装不上,报一句:Failure [INSTALL_FAILED_INVALID_APK: Failed to extract native libraries, res=-2]
出现这个问题的原因是在AndroidManifest.xml中的application标签中加了一句: android:extractNativeLibs="false".
这句的意思是编译apk的时候不压缩so库。去掉这句就OK了,但是这个会导致apk的体积非常大。
去掉这句后在app/build.gradle中添加:
packagingOptions{
doNotStrip "*/armeabi/*.so"
doNotStrip "*/armeabi-v7a/*.so"
doNotStrip "*/x86/*.so"
}如果SO库被压缩的很下,会导致调用so的时候启动内存非常大,会导致StackOverflow
本文探讨了在Android应用开发中遇到的APK安装失败问题,特别是由于使用了so库而导致的问题。文中详细介绍了如何调整AndroidManifest.xml和app/build.gradle文件来避免安装失败错误,并保持合理的APK大小。

1455

被折叠的 条评论
为什么被折叠?



