【问题标题】:Error using native code使用本机代码时出错
【发布时间】: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


【解决方案1】:

这里有一个说明 使用 UTF-8 编码,它会工作 http://stijndewitt.wordpress.com/2010/05/05/unicode-utf-8-in-eclipse-java/

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2013-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-10
  • 2016-09-06
  • 2012-04-18
  • 1970-01-01
相关资源
最近更新 更多