【发布时间】:2012-07-09 10:14:40
【问题描述】:
我需要为我的 Android Eclipse 项目加载库 ld-uClibc-0.9.30.1.so。我尝试从我的主机使用Sytem.load("/root/workspace/libs/ld-uClibc-0.9.30.1.so") 加载它,但出现错误:
Cannot load library /root/workspace/libs/ld-uClibc-0.9.30.1.so. Library not found.
这是怎么回事?为什么它不适用于 System.load?
【问题讨论】:
-
这听起来不像是 Android 兼容库
-
好的,你能告诉我如何知道一个库是否与 Android 兼容吗?
-
由生成它的工具链,或加载它的错误。但是,在这种情况下,如果库建议使用名称。 uClibc 是用于小型系统的 C 库,但 Android 有自己的 C 库,称为 Bionic,它在您的应用启动时已经加载。您应该使用 android ndk 重新编译需要它的代码,以便它与 Bionic 链接。
-
好的,ld-uClibc-0.9.30.1.so 是 libusb.so 的一个依赖项。我没有用 ndk 编译 libusb.so。我只从 Android 设备的 /usr/lib 文件夹中获取它。那么你认为我必须用 ndk 编译 libusb.so 才能完成这项工作吗?你的意思是“..需要这个的代码..”吗?
-
如果它真的带有 /usr/lib/libusb.so,这似乎是一个不寻常的 android 设备。当且仅当这些库在设备上提供时,System.load("/usr/lib/ld-uClibc-0.9.30.1.so") 或无论文件路径是什么,在 logcat 中生成什么错误?
标签: android android-ndk libusb