接入MMKV,引入so,插件报没有权限
java.lang.UnsatisfiedLinkError: dlopen failed: couldn't map "/data/data/com.seuic.kysy/files/ShadowPluginManager/UnpackedPlugin/TakeDeliveryPluginManager/lib/1.5.6_lib/libmmkv.so" segment 1: Permission denied at java.lang.Runtime.loadLibrary0(Runtime.java:1016) at java.lang.System.loadLibrary(System.java:1669) at com.tencent.mmkv.MMKV.doInitialize(MMKV.java:194) at com.tencent.mmkv.MMKV.initialize(MMKV.java:181) at com.tencent.mmkv.MMKV.initialize(MMKV.java:134) at com.kye.utils.MMKVUtil.initMMKV(MMKVUtil.java:13)
只有部分机型会这样
宿主的targetSdkVersion为29+吗?
https://developer.android.com/about/versions/10/behavior-changes-10#execute-permission
我们targetSdkVersion是26,但我们宿主也用了这个MMKV,没有报错,只有插件报错了,而且只有部分机型报错了
插件和宿主在同一个进程里加载不同版本的同一个so?
1个版本的
那至少也是在同一个进程重复加载2个相同内容的不同文件了。这也不是正常应用会做的事,可能有的系统没有兼容好这种场景。 不要这样做。
我们插件和宿主是两个进程
部分机型是什么机型?品牌,型号,系统版本都应该关注一下是否有聚集性。
我们是定制的手持设备,其中有一款型号会报错 优博讯的巴枪 系统版本是9 肯定不是操作系统版本的原因,因为另外一款设备也是android9 是可以的
如果你能确定在一个型号上问题有聚集性,显然这个型号是有问题的。你可以尝试在这个型号上写正常的app,不使用shadow,尝试你说的两个进程加载同一个so的两个不同文件。也可以试试在同一个进程加载,看看能否有相同的报错出现。
另外这个交流太低效了,你为什么不一开始就分享所有的信息呢?
好的,我试试,并反馈给厂商问问,谢谢,之后提问题尽量把设备信息一次性提供全