Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
liwei49699 opened this issue Aug 29, 2022 · 9 comments

Comments

@liwei49699
Copy link

liwei49699 commented Aug 29, 2022

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)是正常的

@TestPlanB
Copy link
Owner

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

@TestPlanB
Copy link
Owner

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

@liwei49699
Copy link
Author

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

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

@TestPlanB
Copy link
Owner

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

@liwei49699
Copy link
Author

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

@Kino521
Copy link

Kino521 commented Sep 9, 2022

用的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)

@TestPlanB
Copy link
Owner

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

@TestPlanB
Copy link
Owner

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

@SkyHots
Copy link

SkyHots commented Aug 14, 2023

用的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)

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants