标签: unsatisfiedlinkerror

Android NDK中的多个(我的和第三方)本机库

我必须使用两个本地库:一个是我自己的,另一个是第三方.只要我在单独的项目中使用它们,一切都很好.但现在我得到了Exception Ljava/lang/UnsatisfiedLinkError.

我正在使用Eclipse.

我发现如果我将现有的库放在libs/armeabi中,Eclipse就会开始编译本机代码并且它会失败.如果我从命令行重建JNI部分,编译成功但第三方库消失.真的很蠢.

那么我如何告诉Eclipse使用现有的.so库以及必须构建的库?图书馆是独立的.

eclipse native eclipse-cdt android-ndk unsatisfiedlinkerror

6
推荐指数
1
解决办法
5631
查看次数

当添加jar作为Play项目的依赖项时,IntelliJ找不到OpenCV的本机库

我目前正在开发一个Play 2.1项目,其中对Web服务的请求将处理下载用户提供的图像,重新调整大小和重新裁剪它们,以及过滤掉已知的坏照片(例如,我们不希望用户上传公司徽标).我们正在尝试使用OpenCV来处理后端工作,但我似乎无法让IntelliJ以与java项目一起使用的方式添加OpenCV jar.

我已经能够从源代码构建OpenCV,没有问题.这给我留下了以下文件夹:/ home/charles/opencv/release

在这个文件夹里面,我有三个感兴趣的文件:

  1. 斌/ OpenCV的-246.jar
  2. LIB/cv2.so
  3. LIB/libopencv_java246.so

如果我尝试将jar文件添加到IntelliJ作为新的Java库,它似乎找到了所有的类/方法,我可以使用auto-complete编写代码.我也可以单击相应的类或方法,它会将我带到正确的文件中.

但是,当我尝试运行Play项目时,我收到此错误:

[info] Loading project definition from /home/charles/Github/ImageProject
[info] Set current project to ImageProject (in build file:/home/charles/Github/ImageProject/)

--- (Running the application from SBT, auto-reloading is enabled) ---

[info] play - Listening for HTTP on /0:0:0:0:0:0:0:0:9000

Server started, use Alt+D to stop

[info] Compiling 1 Java source to /home/charles/Github/ImageProject/target/scala-2.10/classes...
[error] /home/charles/Github/ImageProject/app/controllers/Application.java:7: error: package org.opencv.core does not exist
[error] import org.opencv.core.Core;
[error]                       ^
Run Code Online (Sandbox Code Playgroud)

我也尝试将jar文件的副本直接添加到项目中(所以将opencv-246.jar放入ImageProject/lib),然后从该位置添加java库.但这只是让我有一个不同的错误:

java.lang.UnsatisfiedLinkError: no opencv_java246 in java.library.path
Run Code Online (Sandbox Code Playgroud)

我怀疑部分问题可能与Java OpenCV包装器使用的本机库有关(上面的文件2或3).在Eclipse中,当您添加jar文件时,您可以显式设置本机库位置,这使OpenCV正常工作.我已经阅读了使用它来解决问题的建议:

-Djava.library.path=/home/charles/opencv/release/lib …
Run Code Online (Sandbox Code Playgroud)

java opencv intellij-idea unsatisfiedlinkerror playframework-2.1

6
推荐指数
1
解决办法
9883
查看次数

在Android上初始化Myo hub时出现不满意的链接错误

我正在开发一个将使用Myo臂章的Android应用程序.我希望将其作为辅助功能服务来实现,以便臂带检测到的手势可以,例如导航回家等.

我正在尝试初始化集线器,但应用程序因以下错误堆栈而停止:

01-06 23:42:41.222 11979-11979/eu.miko.myoid E/AndroidRuntime: FATAL EXCEPTION: main
                                                           Process: eu.miko.myoid, PID: 11979
                                                           java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/eu.miko.myoid-1/base.apk"],nativeLibraryDirectories=[/data/app/eu.miko.myoid-1/lib/arm, /vendor/lib, /system/lib]]] couldn't find "libgesture-classifier.so"
                                                               at java.lang.Runtime.loadLibrary(Runtime.java:367)
                                                               at java.lang.System.loadLibrary(System.java:1076)
                                                               at com.thalmic.myo.scanner.Scanner.<clinit>(Scanner.java:31)
                                                               at com.thalmic.myo.Hub.init(Hub.java:201)
                                                               at eu.miko.myoid.MyoidAccessibilityService.onCreate(MyoidAccessibilityService.java:21)
                                                               at android.app.ActivityThread.handleCreateService(ActivityThread.java:2877)
                                                               at android.app.ActivityThread.-wrap4(ActivityThread.java)
                                                               at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1427)
                                                               at android.os.Handler.dispatchMessage(Handler.java:102)
                                                               at android.os.Looper.loop(Looper.java:148)
                                                               at android.app.ActivityThread.main(ActivityThread.java:5417)
                                                               at java.lang.reflect.Method.invoke(Native Method)
                                                               at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                                                               at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Run Code Online (Sandbox Code Playgroud)

根据Myo文档,这是我用于集线器初始化的代码.我已经尝试将它放在辅助功能服务的onCreate和onServiceConnected方法中,无论如何都会出现错误.

    Hub hub = Hub.getInstance();
    if (hub.init(this, getPackageName())) {
        Intent intent = new Intent(this, ScanActivity.class);
        startActivity(intent);

        hub.setLockingPolicy(Hub.LockingPolicy.NONE);

        hub.addListener(mListener);
    }
    else {
        Log.e(TAG, "Could not initialize the Hub."); …
Run Code Online (Sandbox Code Playgroud)

java android dalvik unsatisfiedlinkerror myo

6
推荐指数
1
解决办法
944
查看次数

UnsatisfiedLinkError:java.library.path 中没有 j3dcore-ogl

我在 eclipse 中有一个项目,当我单击“运行”时,它在 ide 中运行得很好,但我需要将其导出到可运行的 jar 文件中,该文件也可以正常运行。但是当我尝试运行它时,它会抛出异常:

Exception in thread "main" java.lang.UnsatisfiedLinkError: no j3dcore-ogl in java.library.path
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1856)
    at java.lang.Runtime.loadLibrary0(Runtime.java:845)
    at java.lang.System.loadLibrary(System.java:1084)
    at javax.media.j3d.NativePipeline$1.run(NativePipeline.java:231)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.media.j3d.NativePipeline.loadLibrary(NativePipeline.java:200)
    at javax.media.j3d.NativePipeline.loadLibraries(NativePipeline.java:157)
    at javax.media.j3d.MasterControl.loadLibraries(MasterControl.java:987)
    at javax.media.j3d.VirtualUniverse.<clinit>(VirtualUniverse.java:299)
    at javax.media.j3d.GraphicsConfigTemplate3D.getBestConfiguration(GraphicsConfigTemplate3D.java:321)
    at java.awt.GraphicsDevice.getBestConfiguration(GraphicsDevice.java:207)
    at com.sun.j3d.exp.swing.JCanvas3D.<init>(JCanvas3D.java:228)
    at com.sun.j3d.exp.swing.JCanvas3D.<init>(JCanvas3D.java:178)
    at mainproject.MainPanel.<init>(MainPanel.java:72)
    at mainproject.MainWindow.<init>(MainWindow.java:42)
    at mainproject.MainWindow.main(MainWindow.java:23)
Run Code Online (Sandbox Code Playgroud)

我已经用谷歌搜索了两天了,有很多结果,但没有任何帮助。我通过转到导出它file->export->java->Runnable jar file->i bubble extract required libraries into generated jar,选择正确的配置,将文件保存在指定的文件夹中,然后保存就可以了。或者至少我是这么认为的。转到java.library.pathjre lib folder但是当我在 eclipse 中运行它时,它转到 j3d 的 .so ,我尝试使用更改它System.setProperty但没有成功。我有一种感觉,这就是问题所在,但当我尝试解决它时,什么也没发生。我正在使用最新的java3d library (1.5.2 I believe) …

java eclipse java-3d exception unsatisfiedlinkerror

5
推荐指数
1
解决办法
1万
查看次数

Mac OSX 上的 VLCJ 链接错误 (darwin/libvlc.dylib)

我正在尝试初始化 VLCJ 以执行一些流式传输,作为我正在开发的应用程序的一部分。按照官方教程,我使用以下代码来尝试加载库:

NativeLibrary.addSearchPath(
    RuntimeUtil.getLibVlcLibraryName(), "/Applications/VLC/Contents/MacOS/lib"
    );
Native.loadLibrary(RuntimeUtil.getLibVlcLibraryName(), LibVlc.class);
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我收到以下错误:

Exception in thread "main" java.lang.UnsatisfiedLinkError: Unable to load library 'vlc': JNA native support (darwin/libvlc.dylib) not found in resource path (/Users/iamparker/Documents/workspace/VLCStreamer/target/classes:/usr/jar/vlc/vlcj-3.0.1-javadoc.jar:/usr/jar/vlc/vlcj-3.0.1-sources.jar:/usr/jar/vlc/vlcj-3.0.1-test-sources.jar:/usr/jar/vlc/vlcj-3.0.1-tests.jar:/usr/jar/vlc/vlcj-3.0.1.jar:/usr/jar/vlc/jna-4.1.0.jar:/usr/jar/vlc/jna-platform-4.1.0.jar)
at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:220)
at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:322)
at com.sun.jna.Library$Handler.<init>(Library.java:142)
at com.sun.jna.Native.loadLibrary(Native.java:387)
at com.sun.jna.Native.loadLibrary(Native.java:366)
at com.thundercats.vlcstreamer.Main.loadNative(Main.java:33)
at com.thundercats.vlcstreamer.Main.main(Main.java:16)
Run Code Online (Sandbox Code Playgroud)

看起来它甚至没有搜索我给它的路径。该目录中有一个非常好的 libvlc.dylib 。

以下是运行 VLCJ NativeDiscoveryTest 的输出:

vlcj: (Info.java:70)                                 | INFO  | vlcj: <version not available>
vlcj: (Info.java:71)                                 | INFO  | java: 1.6.0_65 Apple Inc.
vlcj: (Info.java:72)                                 | INFO  | java home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
vlcj: …
Run Code Online (Sandbox Code Playgroud)

macos libvlc vlcj unsatisfiedlinkerror

5
推荐指数
1
解决办法
4959
查看次数

LWJGL 'java.lang.UnsatisfiedLinkError':java.library.path 中没有 lwjgl

Exception in thread "main" java.lang.UnsatisfiedLinkError: no lwjgl in java.libr
ary.path
        at java.lang.ClassLoader.loadLibrary(Unknown Source)
        at java.lang.Runtime.loadLibrary0(Unknown Source)
        at java.lang.System.loadLibrary(Unknown Source)
        at org.lwjgl.Sys$1.run(Sys.java:73)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.lwjgl.Sys.doLoadLibrary(Sys.java:66)
        at org.lwjgl.Sys.loadLibrary(Sys.java:95)
        at org.lwjgl.Sys.<clinit>(Sys.java:112)
        at org.lwjgl.opengl.Display.<clinit>(Display.java:135)
        at org.lorana.client.Lorana.<init>(Lorana.java:20)
        at org.lorana.client.Lorana.main(Lorana.java:31)
Run Code Online (Sandbox Code Playgroud)

在我将所有本机库链接到每个引用的库并按照http://ninjacave.com/lwjglwitheclipse的说明进行操作后,错误仍然存​​在

我还关注了板上关于 lwjgl unsatisfiedlinkerrors 的其他问题,但无济于事。

非常感谢您的帮助,提前致谢!

java lwjgl unsatisfiedlinkerror

5
推荐指数
1
解决办法
4575
查看次数

线程"main"中的异常java.lang.UnsatisfiedLinkError:org.lwjgl.DefaultSysImplementation.getPointerSize()I

起初这看起来像9个其他问题的副本,但我的实际上是独一无二的.并没有多少答案修复它.使用JLWGL.

Exception in thread "main" java.lang.UnsatisfiedLinkError:     org.lwjgl.DefaultSysImplementation.getPointerSize()I
    at org.lwjgl.DefaultSysImplementation.getPointerSize(Native Method)
    at org.lwjgl.Sys.<clinit>(Sys.java:113)
    at org.lwjgl.opengl.Display.<clinit>(Display.java:135)
    at renderEngine.DisplayManager.createDisplay(DisplayManager.java:30)
    at engineTester.MainGameLoop.main(MainGameLoop.java:11)
Run Code Online (Sandbox Code Playgroud)

没有任何谷歌搜索显示原因.我已经按照几个教程来写了这封信.本机文件夹已正确设置.是的,我仍然得到这个错误!太令人沮丧!

java linker exception unsatisfiedlinkerror

5
推荐指数
1
解决办法
4785
查看次数

加载共享库时出错; 无法打开共享对象文件:没有这样的文件或目录

从Ubuntu操作系统上的java类加载共享库(JNI)时遇到问题

Exception in thread "main" java.lang.UnsatisfiedLinkError: /opt/ETcpsdk/lib/linux-x86_64/libjcryptoki.so: libcryptoki.so: cannot open shared object file: No such file or directory
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1965)
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1890)
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1880)
    at java.lang.Runtime.loadLibrary0(Runtime.java:849)
    at java.lang.System.loadLibrary(System.java:1088)
    at tutorialjni.Test.<clinit>(Test.java:7)
Run Code Online (Sandbox Code Playgroud)

- Test.java

package tutorialjni;

public class Test {

    // Load an external library, called "jcryptoki"
    static {
        System.loadLibrary("jcryptoki");
    }

    public static void main(String[] args) {
        System.out.println(System.getProperty("java.library.path"));
    }

}
Run Code Online (Sandbox Code Playgroud)

- LD_LIBRARY_PATH已在/ etc/environment中分配

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
JAVA_HOME="/opt/jdk1.7.0_75"
LD_LIBRARY_PATH="/opt/ETcpsdk/lib/linux-x86_64:/opt/ETcpsdk/lib/"
Run Code Online (Sandbox Code Playgroud)

我拥有ETcpsdk文件夹.

  • libcryptoki.so放入/opt/ETcpsdk/lib/linux-x86_64/libcryptoki.so

  • 运行文件libcryptoki.so命令

    libjcryptoki.so:ELF 64位LSB共享对象,x86-64,版本1(SYSV),动态链接,未剥离

- JDK版本:

java version "1.7.0_75" …
Run Code Online (Sandbox Code Playgroud)

java ubuntu java-native-interface shared-libraries unsatisfiedlinkerror

5
推荐指数
1
解决办法
2733
查看次数

Apache Spark - Parquet / Snappy 压缩错误

我有一个来自 Oracle 表的数据帧,我试图在本地使用 Snappy 压缩将其写入 Parquet 格式。

如果我保存为 CSV,则工作正常,但在尝试保存为 Parquet 时会遇到此错误。

java.lang.UnsatisfiedLinkError: org.xerial.snappy.SnappyNative.maxCompressedLength(I)I
Run Code Online (Sandbox Code Playgroud)

Snappy 库已经在我的类路径中,这适用于其他源类型(平面文件)。

我可以做什么来解决?

堆栈跟踪如下:

2017-05-19 08:10:37.398  INFO 7740 --- [rker for task 0] org.apache.hadoop.io.compress.CodecPool  : Got brand-new compressor [.snappy]
2017-05-19 08:11:45.482 ERROR 7740 --- [rker for task 0] org.apache.spark.util.Utils              : Aborting task
java.lang.UnsatisfiedLinkError: org.xerial.snappy.SnappyNative.maxCompressedLength(I)I
    at org.xerial.snappy.SnappyNative.maxCompressedLength(Native Method) ~[snappy-java-1.1.2.6.jar:na]
    at org.xerial.snappy.Snappy.maxCompressedLength(Snappy.java:376) ~[snappy-java-1.1.2.6.jar:na]
    at org.apache.parquet.hadoop.codec.SnappyCompressor.compress(SnappyCompressor.java:67) ~[parquet-hadoop-1.8.1.jar:1.8.1]
    at org.apache.hadoop.io.compress.CompressorStream.compress(CompressorStream.java:81) ~[hadoop-common-2.2.0.jar:na]
    at org.apache.hadoop.io.compress.CompressorStream.finish(CompressorStream.java:92) ~[hadoop-common-2.2.0.jar:na]
    at org.apache.parquet.hadoop.CodecFactory$BytesCompressor.compress(CodecFactory.java:112) ~[parquet-hadoop-1.8.1.jar:1.8.1]
    at org.apache.parquet.hadoop.ColumnChunkPageWriteStore$ColumnChunkPageWriter.writePage(ColumnChunkPageWriteStore.java:89) ~[parquet-hadoop-1.8.1.jar:1.8.1]
    at org.apache.parquet.column.impl.ColumnWriterV1.writePage(ColumnWriterV1.java:152) ~[parquet-column-1.8.1.jar:1.8.1]
    at org.apache.parquet.column.impl.ColumnWriterV1.accountForValueWritten(ColumnWriterV1.java:113) ~[parquet-column-1.8.1.jar:1.8.1]
    at org.apache.parquet.column.impl.ColumnWriterV1.write(ColumnWriterV1.java:205) ~[parquet-column-1.8.1.jar:1.8.1]
    at org.apache.parquet.io.MessageColumnIO$MessageColumnIORecordConsumer.addBinary(MessageColumnIO.java:347) …
Run Code Online (Sandbox Code Playgroud)

java unsatisfiedlinkerror apache-spark

5
推荐指数
1
解决办法
4305
查看次数

在 Docker 上运行 Java Swing GUI 应用程序

我正在尝试使用 Windows 中的 docker 工具箱运行自定义 java swing GUI。我现在想容器化此应用程序,但出现以下错误:

Exception in thread "main" java.lang.UnsatisfiedLinkError: 
/opt/jdk1.8.0_202/jre
/lib/amd64/libawt_xawt.so: libXext.so.6: cannot open shared object file: 
No such file or directory
Run Code Online (Sandbox Code Playgroud)

我正在运行一个 dockerfile。设置是:

1)安装Linux

2)安装JDK

3)复制包含JAR的文件夹

4) 运行 docker 容器,这将打开 GUI(不是 Linux 前端,最好不使用 vnc)。

我在 Windows 上使用Xlaunch作为终端,并且能够使用它在 docker 上启动 Firefox。

这是第一个 docker 文件

FROM anapsix/alpine-java
COPY ./myJarFolder /home/myJarFolder
CMD ["java","-jar","/home/myJarFolder/myJarFile.jar"]
Run Code Online (Sandbox Code Playgroud)

这是第二个docker文件

FROM alpine:3.2

MAINTAINER Anastas Dancha [...]

# Install cURL

RUN apk --no-cache add ca-certificates

# Java Version

ENV JAVA_VERSION_MAJOR 8

ENV JAVA_VERSION_MINOR …
Run Code Online (Sandbox Code Playgroud)

java swing unsatisfiedlinkerror docker dockerfile

5
推荐指数
1
解决办法
8200
查看次数