简介
最近有个海外项目需要把之前项目从30版本升级到31版本,升级后发现就发现一个问题:
因为我们的项目是系统签名的apk,所以集成到系统中后是没有任何问题的,但是当我们手动安装后就会出现使用dlopen
去加载系统的so库(/system/lib64/libSysMultiscreenAudio.tct.so
)失败问题。
查找问题
于是我就想之前30版本的是没有问题,那么31版本的就会有这个问题,肯定是31版本的应该是对权限进行了加强了。于是我就去google官网去查30到31到底有啥区别,最终在这个连接找到了:行为变更:以 Android 12 为目标平台的应用
uses-native-library标签的用法 | 非NDK原生共享库 |
---|---|
解决问题
我在我项目中的清单文件中加入<uses-native-library>
标签后,编译apk时报错,而且也会有警告,输入标签也不会有提示
这......
为啥<uses-native-library>
标签不能使用?最终也没有在网上找到<uses-native-library>
标签的正确使用方式,有知道的麻烦告知我一下,非常感谢。
既然<uses-native-library>
标签用起来有问题,那么试试<uses-library>
标签看看,而且<uses-library>
标签在输入的时候会有提示
<uses-library
android:name="libSysMultiscreenAudio.tct.so"
android:required="false" />
最终进行测试发现这个标签还真的可以。
标签:标签,31,30,so,版本,Android31,dlopen From: https://www.cnblogs.com/zuojie/p/16992293.html