【发布时间】:2014-05-12 13:40:06
【问题描述】:
我在 Eclipse 中有两个项目。项目 1 和项目 2。 Project1 使用包含在以下内容中的本机代码:
static {
System.loadLibrary("thelibraryname");
}
我将 Project1 添加到项目 2 的构建路径中。Project2 从 Project1 中的一个类调用方法,该类使用本机方法。但是,运行 Project2 时出现错误:
线程“主”java.lang.UnsatisfiedLinkError 中的异常:否 java.library.path 中的库名
我的eclipse项目的目录结构如下:
Project1
Android 1.6
Android Dependancies
src/
bin/
libs/
armeabi/
libthelibraryname.so
armeabi-v7a/
libthelibraryname.so
x86/
libthelibraryname.so
<some-other-dirs-and-files>
Project2
src/
Testing.java
Junit
JRE System Library
我发现错误与本机代码有关。可能我需要在某处提供对本机代码的引用,但我找不到方法。请注意,eclipse 在编译时不指示任何错误,仅在运行时指示。
有什么想法可以解决这个问题吗? :)
编辑:
- 我正在使用 32 位 JRE 的 64 位平台上运行。
- 我尝试过:-Djava.library.path=/path/to/lib/x86(以及 armeabi-v7a 和 armeabi)。但这并没有改变任何东西。
【问题讨论】:
-
您是在 64 位平台上运行它吗?您使用的是 32 位 JRE 吗?
-
你试过用
-Djava.library.path=/path/to/lib/folder运行吗? -
对于初学者,尝试打印 java.library.path 属性的值。如果您的图书馆的位置不在上面,您需要确保它在上面。
-
我编辑了我的答案来回答上面的 cmets。
-
如果 JRE 是 32 位的,那么您尝试加载的库也需要是 32 位的。是吗?
标签: java eclipse native native-code unsatisfiedlinkerror