Kum*_*nak 2 java-native-interface android native
我一直在尝试将linux编译的预建共享库与我的android jni应用程序一起使用,但是当我尝试运行该应用程序时,出现以下错误:
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):无法加载“ libXXX_embedded_shared.so”所需的库 “ libdl.so.2”;由load_library(linker.cpp:746)引起:找不到库“ libdl.so.2”
我在android / system / lib中找不到libdl.so.2,但是有一个库libdl.so,我尝试加载该库,但仍无法解决依赖关系。
你能指出我在这里我想念的吗?
你不能做这个。
Android和普通的Linux具有很大的用户空间,特别是它们使用完全不同的C库和关联的不兼容动态链接器。
对版本库名称(.so.2-Android目前不支持的名称)的强烈渴望表明该库不是为Android构建的。
您需要通过创建android.mk和类似文件来驱动正常的ndk构建系统,或者通过使用ndk实用程序生成“独立工具链”并将项目的构建系统指向android,使用android ndk重建所有库。产生的以Android为目标的gcc,ld等。
有些人通过在chroot中放置一小部分debian-arm或类似的东西来设法在root用户的设备上使用普通的linux用户空间组件,但这需要root用户进行设置,而且jni不能从应用程序进程进行链接。您的应用程序流程已经与Android的C库紧密相连,因此您无法真正替代另一个。
| 归档时间: |
|
| 查看次数: |
2332 次 |
| 最近记录: |