首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法加载库"libdl.so.2“

无法加载库"libdl.so.2“
EN

Stack Overflow用户
提问于 2014-04-16 13:51:53
回答 1查看 4.2K关注 0票数 3

我一直试图在我的android应用程序中使用linux编译的预建共享库,但是当我试图运行该应用程序时,它会出现以下错误:

04-16 19:09:13.633: E/dalvikvm(11810):dlopen("/data/app-lib/com.lXXXX.XXXX.connect-2/libXXX_embedded_shared.so")失败:无法加载库: soinfo_link_image(linker.cpp:1636):无法加载库"libdl.so.2“”libXXX_embedded_shared.so“所需的;由load_library(linker.cpp:746)引起的:库”libdl.so.2“未找到

我在android/system/lib中找不到libdl.so.2,但是有一个库libdl.so试图加载,但它仍然没有解决依赖关系。

你能告诉我我在这里错过了什么吗?

EN

回答 1

Stack Overflow用户

发布于 2014-04-16 16:42:19

你不能这么做。

Android和普通linux有很大的不同的用户空间,特别是它们使用完全不同的C库和相关的不兼容的动态链接器。

想要一个版本化的库名( .so.2 --这是Android目前没有做到的),这表明这个库不是为Android构建的。

您需要使用Android.mk 重新构建所有库,方法是创建和Android.mk以及类似的文件来驱动正常的ndk构建系统,或者使用ndk实用工具生成“独立工具链”,并将项目的构建系统指向最终的android --目标为gcc、ld等。

有些人在根设备上使用了普通的linux用户空间组件,在chroot中只安装了一个完整的debian或类似的组件,但这需要根来设置,而且jni无法从应用程序进程中链接。您的应用程序已经与Android的C库有了很深的联系,所以您无法真正地替代另一个库。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23111463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档