INSTALL_FAILED_INVALID_APK: Failed to extract native libraries, res=-2

模拟器X86,项目中SO库为v7

找到so库源代码,编译成x86
如果so库只是某个功能点使用,对APP整体没大影响,就可以屏蔽特定so库功能或略过测试
如果so库是项目核心库必须加载,也可使用腾讯云测,上面有谷歌亲儿子Q版本。腾讯云测有adb远程连接调试功能(我没成功过)。adb连不上也没关系,直接安装就行,云测上也可以直接看日志。
至于inter的houdini我尝试研究过,理论上能安装在x86模拟器上让它编译v7的so库,但是由于关于houdini的介绍比较少也比较旧,建议大家时间不充裕的话就别研究了。
Requires development platform Q but this is a release platform.

由于目前Q是preview版,所以targetSDK==Q 的应用只能在Q设备上跑。

INSTALL_FAILED_INVALID_APK: Failed to extract native libraries, res=-2

这个错误是由于打包压缩so库时造成的,具体原因可见(http://www.amjmh.com/v/BIBRGZ_558768/)

https://issuetracker.google.com/issues/37045367

在AndroidManifest.xml的application节点下加入android:extractNativeLibs="true"
可能有人加了上面代码还是不行,在app/build.gradle中的defaultConfig节点下加入

packagingOptions{
doNotStrip "/armeabi/.so" doNotStrip "/armeabi-v7a/.so" doNotStrip "/x86/.so" }
Didn't find class “org.apache.http.client.methods.HttpPost"

在AndroidManifest.xml的application节点下加入


如果你的项目没有适配过android O或P,那么你需要注意:

android O的读取已安装应用权限(对应用内自动更新有影响)
android P的默认禁止访问http的API

原文

你可能感兴趣的:(INSTALL_FAILED_INVALID_APK: Failed to extract native libraries, res=-2)