dyso
dyso copied to clipboard
cannot locate symbol "__cxa_finalize" referenced by "/system/lib64/libdl.so"
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)是正常的
目前只支持用System.loadLibrary去加载哟!System.load还没有适配
"__cxa_finalize" 请先确认这个函数符号,是否在其他的so库中,而其他的so库没有放在指定的动态加载目录
"__cxa_finalize" 请先确认这个函数符号,是否在其他的so库中,而其他的so库没有放在指定的动态加载目录
我是直接跑得demo啊 走到那个循环就报异常了
demo 是没有包含下载so库这一动作的,需要我们手动模拟把so文件放到自定义目录,具体步骤可见readme中掘金文档
demo里面的两个so库 我已经导入了 剩下的那几个库 我不知道是怎么回事
用的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)
直接跑demo肯定是跑不起来的,我在项目代码有注释,我们demo只是想要成功执行需要把相应的so放到对应的下载目录下(模拟下载过程),可以看readme里面的掘金文章,有详细步骤
nativecpp2 依赖nativecpp ,demo运行可以看项目,还有一步是把特定的so放到自定义的文件夹下,模拟下载的过程
用的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)
解决了吗兄弟,我也遇到了这个报错