java.lang.UnsatisfiedLinkError:无法加载库

时间:2014-01-10 18:16:07

标签: android linker android-ndk

我遇到的问题是我的APK能够加载其/ data / data / app / lib文件夹中包含的.so文件,但链接器无法找到也位于该文件夹中的依赖项。错误是:

D/dalvikvm( 5541): Trying to load lib /data/data/app/lib/liba.so 0x41978aa8
W/dalvikvm( 5541): Exception Ljava/lang/UnsatisfiedLinkError; thrown while initializing Lapp;
...
E/AndroidRuntime( 5541): Caused by: java.lang.UnsatisfiedLinkError: Cannot load library: link_image[1891]:  1679 could
 not load needed library 'libb.so' for 'liba.so' (load_library[1093]: Library 'libb.so' not found)

有趣的是,还有其他的依赖项,因为它们与android / system / lib一起提供,但我无法理解为什么它不会在/ data / data / app / lib文件夹中查找?

编辑:这与标记为重复的问题不同,因为它涉及运行时链接的操作,而不是如何将库导入Eclipse IDE。问题herehere中提到了按顺序显式加载依赖项的解决方法

1 个答案:

答案 0 :(得分:3)

正如fadden指出的那样,解决方案是首先显式加载依赖项,如:

System.loadLibrary("b"); System.loadLibrary("a");