首页
社区
课程
招聘
[求助]AOSP中使用System.load(so); UnsatisfiedLinkError dlopen failed异常报错
发表于: 2023-6-5 11:16 5958

[求助]AOSP中使用System.load(so); UnsatisfiedLinkError dlopen failed异常报错

2023-6-5 11:16
5958

家人们 谁懂啊,求问求问 各种搜资料找不到原因
我在android AOSP中使用主线程中动态加载自己的so,也就是用方法System.load(so),64位的32位的包都加载了,都是报UnsatisfiedLinkError异常。如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
E  FATAL EXCEPTION: main
           PID: 11185
 java.lang.UnsatisfiedLinkError: dlopen failed: library "/system/lib/xxxx.so" needed or dlopened by "/apex/com.android.runtime/lib/libnativeloader.so" is not accessible for the namespace "runtime"
           at java.lang.Runtime.load0(Runtime.java:938)
           at java.lang.System.load(System.java:1631)
           at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6422)
           at android.app.ActivityThread.access$1300(ActivityThread.java:230)
           at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1969)
           at android.os.Handler.dispatchMessage(Handler.java:107)
           at android.os.Looper.loop(Looper.java:214)
           at android.app.ActivityThread.main(ActivityThread.java:7684)
           at java.lang.reflect.Method.invoke(Native Method)
           at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)

so的包在system/lib64/和system/lib/目录下,加载不成功还报异常,求教各位,感谢感谢!!


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 1
支持
分享
最新回复 (7)
雪    币: 129
活跃值: (4490)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
权限导致的,要么给权限或者去掉权限校验,linker 的 is_greylisted有可加载的名单
2023-6-5 16:18
0
雪    币: 29
活跃值: (5647)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3

建议直接静态链接进去,linker在dlopen时有namespace限制

最后于 2023-6-5 18:32 被不吃早饭编辑 ,原因:
2023-6-5 18:31
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
4
试试在这些文件下添加自己库名进去system/etc/public.libraries.txt、system/vendor/etc/public.libraries.txt
2023-6-6 08:58
0
雪    币: 22
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
5
New对象处 权限导致的,要么给权限或者去掉权限校验,linker 的 is_greylisted有可加载的名单
我编译了userdebug版本,也关闭了selinux,这个is_greylisted也增加了,但还是报这个异常。关键是不是每个app都报这个异常,有的就可以
2023-6-12 10:26
0
雪    币: 22
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
6
不吃早饭 建议直接静态链接进去,linker在dlopen时有namespace限制
嗯嗯 我是直接使用rom改配置文件,rom自己把copy so到system/lib64目录下的,应该和静态链接是一样的效果吧?
2023-6-12 10:27
0
雪    币: 22
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
7
wx_Zagger 试试在这些文件下添加自己库名进去system/etc/public.libraries.txt、system/vendor/etc/public.libraries.txt
嗯嗯~ 这俩文件 我都加进去了,但是卡在android 加载动画那 进不去系统,好像是系统校验不过?是我还需要改什么配置文件吗大佬
2023-6-12 10:31
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
8
可能需要改这个文件  system/core/rootdir/etc/ld.config.txt  可以研究下linker命名空间的规则 https://source.android.google.cn/docs/core/architecture/vndk/linker-namespace?hl=zh-cn
2023-6-12 14:59
0
游客
登录 | 注册 方可回帖
返回
//