如何使用System.load()函数加载库?

时间:2012-07-09 10:14:41

标签: android android-ndk libusb

我需要为我的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一起使用?

3 个答案:

答案 0 :(得分:0)

将库添加到项目文件夹内的libs文件夹中,然后调用

System.loadLibrary("ld-uClibc-0.9.30.1");

答案 1 :(得分:0)

刚刚意识到真正的问题是什么。我一直在想你正在尝试加载uClibc C库。但事实上,事实并非如此。您正在尝试加载uClibc动态链接器,以便解决与uClibc链接的libusb版本中的依赖关系,而不是bionic。

这不会起作用(至少不是没有淫秽hackery)

你需要使用ndk工具链重建与bionic链接的所有内容,可以通过其独立的工具链函数来重建。

但是,试图让libusb在没有root的情况下使用android或修改设备文件权限的能力可能是徒劳的。

答案 2 :(得分:0)

我使用NDK编译了libusb.so,现在至少它可以在Android项目中加载。我认为这个话题可以被认为是回答。我将发布另一个关于在Android上使用libusb的问题。如果你们还给我一些好的提示,我会很感激,因为它一直帮助我很多。