admin管理员组

文章数量:1618694

Failed to extract native libraries, res=-2

最近升级了项目的gradle版本,打包的apk,通过adb安装,提示Failure [INSTALL_FAILED_INVALID_APK: Failed to extract native libraries, res=-2]
将apk放入Android studio中发现,Androidmanifest文件的application节点多了一个属性 android:extractNativeLibs="false",查询之后,才知道这个属性会控制会控制在打包的时候,对so库是否进行压缩,并使用zipalign做对齐操作。

extractNativeLibs配置为false,那么应用内的so库必须是已经对齐的,否则安装的时候,就会提示这个错误。

对于这个错误,一般采用配置android:extractNativeLibs为true,并配置不压缩对应的so库来处理。

1、配置extractNativeLibs

2、配置包压缩策略

之后就可以编译打包,正常安装了。

gradle对extractNativeLibs默认值设定如下:

条件默认值
minSdkVersion < 23 或 Android Gradle plugin < 3.6.0true
minSdkVersion >= 23 并且 Android Gradle plugin >= 3.6.0false

压缩so库,那么apk体积就会减小,用户下载的时间会减少,但安装的时候,需要将原本被压缩的so库解压复制并解压一份,安装时间会边长,磁盘占用空间更大。
具体细节见 谷歌开发者平台


致敬前辈,砥砺前行!

欢迎关注,留言,一起交流技术!
感谢支持!

本文标签: 提示INSTALLFAILEDINVALIDAPKfailureapkfailed