【Android】【Bug】Android6.0找不到aar库的so文件问题

问题描述

在Android 6.0 版本的设备上开发项目中,集成了【linphone】的本地【aar】库文件,但是在项目的运行过程中,【linphone】库的项目代码是可以正常调用的,但是在【aar】库里面的一些动态库【so】文件却一直无法加载进来。
在这里插入图片描述

这就感觉好奇怪啊,因为既然能调用【linphone】库的项目代码,说明这个【aar】库文件是加载成功的,而且在将这个【aar】库文件解压缩之后,是可以在文件里面找到这几个【so】文件的,这就让我感到一脸懵逼。

问题解决

这里需要用到了一个属性值,在【AndroidManifest】清单文件下

//是否对so库在进行打包成apk文件时进行压缩的属性
android:extractNativeLibs
//当项目的
minSdkVersion < 23 
//或者
Android Gradle plugin < 3.6.0
//情况下,打包时默认 
android:extractNativeLibs = true
//当项目的
minSdkVersion >= 23 
//并且 
Android Gradle plugin >= 3.6.0
//情况下,打包时默认
android:extractNativeLibs = false

当使用

android:extractNativeLibs = false

在安装程序之后,程序会直接使用【/data/data/app包名/lib】路径下的【so】文件,不会进行【so】复制操作,节省存储空间,但是打包生成的apk文件较大。

当使用

android:extractNativeLibs = true

Android Studio在打包过程中会对【so】文件进行压缩,生成的apk文件较小。但是在安装应用时,系统会将【so】解压出来,重新存储一份。因此安装时间会变长,占用的存储空间会变大。

由于项目中一直报错提示无法找到【so】文件,所以在清单文件中使用

android:extractNativeLibs = "true"

这样系统会进行复制【so】文件然后在程序运行时就可以寻找到自己复制的【so】文件,错误消失,程序正常使用。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值