通过Android NDK加载预建库时出现问题

时间:2011-08-04 18:18:18

标签: android android-ndk

我正在尝试将第三方库添加到我的Android应用中。它使用.jar文件和.so文件。这是一个预先构建的.so文件(即不是专门为Android应用程序构建的) - 我知道这将为我提供很多问题。我无法访问.jar或.so文件的源文件!

我试图通过调用System.loadLibrary(“foo”);来动态加载库。目前,在尝试运行应用程序时,它会因为UnsatisfiedLinkError崩溃而崩溃:未找到库foo。我的项目中的libs /和libs / armeabi文件中都有.so文件。

我在这里追逐鬼吗?我试图确定我所追求的是否可行。我没有引用的本机代码 - 我的所有函数调用都是.jar文件,正如我所理解的那样,由.so文件支持。我没有运行Android.mk文件,因为我没有编译任何东西 - 已经提供了.so文件。我真的可以使用一些建议,从这里开始的方向。

1 个答案:

答案 0 :(得分:0)

为System.loadLibrary()提供的基本名称可能会扩展为不同于实际预构建库的文件(或路径)名称。 Logcat应该向您显示它正在尝试加载的内容。你也可以使用带有完整路径/文件名的System.load()而不是System.loadLibrary() - 虽然你真的应该让它与后者一起工作。

虽然我认为它会生成不同的错误消息,但也可能是.so不兼容android - 它不仅必须是兼容的处理器类型和abi,而且不能依赖于任何动态库(例如非仿生libc)未安装在设备上。