gpt4 book ai didi

android - dlopen 失败 : cannot locate symbol "__cxa_finalize" referenced by "/system/lib/libdl.so"

转载 作者:行者123 更新时间:2023-11-30 03:48:26 27 4
gpt4 key购买 nike

在 Android 6 之前,我们有一个应用程序的工作版本,它是使用 Qt Android 编写的,从 Android 6 开始,我们在 Nexus 设备中看到了奇怪的错误

dlopen 失败:无法找到“/system/lib/libdl.so”引用的符号“__cxa_finalize”

和应用程序崩溃。

objdump -T ourlibrary.so
...
00000000 DF *UND* 00000000 __cxa_finalize
...

使用 -lc 标志测试以链接 libc.so,没有帮助,没有同样的问题。

构建时的其他依赖库:libgnuSTL_shared.so

为了欺骗编译器我们添加了

extern "C" int __cxa_finalize(void*); // { empty body somewhere in .cpp file }

没有帮助,有人可以指出问题所在吗?注意:这在 Android 6 (Marshmallow) 之前一直有效

UPD1:api版本android-9,架构arm,qt android编译armv5,toolchain版本4.9

UPD2:一些其他库正在显示 glibc 版本

00000000 w DF *UND* 00000000 GLIBC_2.2.5 __cxa_finalize

最佳答案

我在运行我的应用程序时看到了同样的错误。你有没有:

System.loadLibrary("dl");

位于您的代码中的某处?如果是这样,为了让我的代码在 6 和 <6 上运行,我所做的就是捕获并忽略 6 在尝试加载库时抛出的 UnsatisfiedLinkError 异常。

关于android - dlopen 失败 : cannot locate symbol "__cxa_finalize" referenced by "/system/lib/libdl.so",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33237324/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com