Android dlopen失败:找不到符号"__cxa“U最终确定”;引用为/system/lib/libdl.so“;

Android dlopen失败:找不到符号"__cxa“U最终确定”;引用为/system/lib/libdl.so“;,android,c++,qt,android-ndk,cross-compiling,Android,C++,Qt,Android Ndk,Cross Compiling,在安卓6之前,我们有一个工作版本的应用程序,它是用Qt安卓编写的,从Nexus设备中的安卓6开始,我们看到了奇怪的错误 dlopen失败:找不到“/system/lib/libdl.so”引用的符号“\uu cxa\u finalize” 和应用程序崩溃 objdump -T ourlibrary.so ... 00000000 DF *UND* 00000000 __cxa_finalize ... 使用-lc标志进行测试,以便链接libc.so,无法帮助,没有相同的问题 构建时

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

dlopen失败:找不到“/system/lib/libdl.so”引用的符号“\uu cxa\u finalize”

和应用程序崩溃

objdump -T ourlibrary.so
...
00000000      DF *UND*  00000000 __cxa_finalize
...
使用
-lc
标志进行测试,以便链接libc.so,无法帮助,没有相同的问题

构建时的其他从属库:
libgnustl\u共享。因此

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

extern "C" int __cxa_finalize(void*); // { empty body somewhere in .cpp file }
没有帮助,有人能指出问题吗? 注意:在Android 6(棉花糖)之前,这是完全有效的

UPD1:api版本
android-9
,体系结构
arm
,qt-android编译
armv5
,工具链版本
4.9

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


00000000 w DF*UND*00000000 GLIBC\u 2.2.5\u cxa\u finalize

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

System.loadLibrary("dl");

在你的代码里的什么地方?如果是这样的话,我做了些什么使我的代码在6上运行,我要补充的是,如果您没有这个显式加载,但是发生了崩溃,那么尽早添加这个显式加载的libdl,然后
try…catch
this exception.removed
System.loadLibrary(“dl”)
,它开始正常工作