在工程中如果用了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