dyso icon indicating copy to clipboard operation
dyso copied to clipboard

cannot locate symbol "__cxa_finalize" referenced by "/system/lib64/libdl.so"

Open liwei49699 opened this issue 2 years ago • 8 comments

2022-08-29 15:46:34.714 7719-7719/com.liwei.myapplication E/AndroidRuntime: FATAL EXCEPTION: main Process: com.liwei.myapplication, PID: 7719 java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "__cxa_finalize" referenced by "/system/lib64/libdl.so"... at java.lang.Runtime.loadLibrary(Runtime.java:372) at java.lang.System.loadLibrary(System.java:1076) at com.liwei.myapplication.lib_sillyboy.DynamicSo.loadStaticSo(DynamicSo.java:31) at com.liwei.myapplication.MainActivity.onCreate(MainActivity.java:32) at android.app.Activity.performCreate(Activity.java:6289) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2405) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2535) at android.app.ActivityThread.access$900(ActivityThread.java:155) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1380) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:152) at android.app.ActivityThread.main(ActivityThread.java:5497) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

load报错 直接使用System.load(path)是正常的

liwei49699 avatar Aug 29 '22 07:08 liwei49699

目前只支持用System.loadLibrary去加载哟!System.load还没有适配

TestPlanB avatar Aug 29 '22 10:08 TestPlanB

"__cxa_finalize" 请先确认这个函数符号,是否在其他的so库中,而其他的so库没有放在指定的动态加载目录

TestPlanB avatar Aug 30 '22 01:08 TestPlanB

"__cxa_finalize" 请先确认这个函数符号,是否在其他的so库中,而其他的so库没有放在指定的动态加载目录

image image 我是直接跑得demo啊 走到那个循环就报异常了

liwei49699 avatar Aug 30 '22 02:08 liwei49699

demo 是没有包含下载so库这一动作的,需要我们手动模拟把so文件放到自定义目录,具体步骤可见readme中掘金文档

TestPlanB avatar Aug 30 '22 08:08 TestPlanB

demo里面的两个so库 我已经导入了 剩下的那几个库 我不知道是怎么回事

liwei49699 avatar Sep 01 '22 05:09 liwei49699

用的android 版本13的手机 java.lang.UnsatisfiedLinkError: dlopen failed: library "/storage/emulated/0/Android/data/com.example.nativecpp/files/libnativecpp.so" needed or dlopened by "/apex/com.android.art/lib64/libnativeloader.so" is not accessible for the namespace "classloader-namespace" at java.lang.Runtime.loadLibrary0(Runtime.java:1077) at java.lang.Runtime.loadLibrary0(Runtime.java:998) at java.lang.System.loadLibrary(System.java:1661) at com.example.lib_sillyboy.DynamicSo.loadStaticSo(DynamicSo.java:30) at com.example.nativecpp.MainActivity.onCreate(MainActivity.java:33)

Kino521 avatar Sep 09 '22 06:09 Kino521

直接跑demo肯定是跑不起来的,我在项目代码有注释,我们demo只是想要成功执行需要把相应的so放到对应的下载目录下(模拟下载过程),可以看readme里面的掘金文章,有详细步骤

TestPlanB avatar Sep 09 '22 09:09 TestPlanB

nativecpp2 依赖nativecpp ,demo运行可以看项目,还有一步是把特定的so放到自定义的文件夹下,模拟下载的过程

TestPlanB avatar Sep 09 '22 10:09 TestPlanB

用的android 版本13的手机 java.lang.UnsatisfiedLinkError: dlopen failed: library "/storage/emulated/0/Android/data/com.example.nativecpp/files/libnativecpp.so" needed or dlopened by "/apex/com.android.art/lib64/libnativeloader.so" is not accessible for the namespace "classloader-namespace" at java.lang.Runtime.loadLibrary0(Runtime.java:1077) at java.lang.Runtime.loadLibrary0(Runtime.java:998) at java.lang.System.loadLibrary(System.java:1661) at com.example.lib_sillyboy.DynamicSo.loadStaticSo(DynamicSo.java:30) at com.example.nativecpp.MainActivity.onCreate(MainActivity.java:33)

解决了吗兄弟,我也遇到了这个报错

SkyHots avatar Aug 14 '23 13:08 SkyHots