gpt4 book ai didi

android - 无法 dlopen,无法在 android 2.1 上加载库,但可以在 2.2+ 上加载

转载 作者:行者123 更新时间:2023-11-29 00:43:50 25 4
gpt4 key购买 nike

我已经使用 NDK 为 Android 编译了一个 JNI 库,它静态链接到我使用这个项目编译的 libcrypto.a,https://github.com/fries/android-external-openssl它动态链接到 libdl.so。

尽管 NDKs platforms/android-x/arch-arm/usr/lib 目录对于每个版本的 android 都有一个 libdl.so 当我尝试在 Android 2.1 上加载我的库时我收到以下错误:

Trying to load lib /data/data/package.name/lib/libmylibrary.so 0x44e83a28
Unable to dlopen(/data/data/package.name/lib/libmylibrary.so): Cannot load library: reloc_library[1244]: 30 cannot locate 'dladdr'...

然后继续崩溃并出现 UnsatisfiedLinkError,但在 2.2+ 上我的 native 库链接并完美运行

对发生在我身上的事情或如何解决它有什么想法吗?

最佳答案

所以在研究这个问题时我发现虽然 libdl 存在于所有版本的 android 中,dladdr() 在 2.2 中被添加到 C 库中

NDK changes.html相关行如下:

- C Library changes:

For android-8 (a.k.a. Android 2.2):
- add DL_info and dladdr().

关于android - 无法 dlopen,无法在 android 2.1 上加载库,但可以在 2.2+ 上加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7733935/

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