动态SO文件读取没有权限

java.lang.UnsatisfiedLinkError: dlopen failed: couldn't map "/data/app/ltd.qisi.navi-vZ6ZOpJM-YtSk8I32d4gYg==/base.apk!/lib/arm64-v8a/libbase_utils.so" segment 0: Operation not permitted

So 加载失败原因

        System.loadLibrary("XXXX");//动态加载libs目录下的so/arr文件

通常情况下应用会解压base.apk文件,然后将so文件copy到app的lib文件夹下


但因为部分系统定制厂商没有给/data/app文件夹的权限,会导致so文件无法复制到lib目录下从而使so加载失败

解决方法:

删除data文件夹下app应用,将apk push到系统的system/product/目录下,然后将so放入/system/lib64(如果是动态加载则不需要)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容