繁体   English   中英

无法从类com.sun.jna.Native的Native(Method,Object)获取静态方法

[英]Can't obtain static method fromNative(Method, Object) from class com.sun.jna.Native

我正在使用JNAcom.sun.jna.NativeLibrary类来加载VLCJ本机库。 我正在使用基于armv8(aarch x64)-based linux device 下面是我的代码, 请注意我正在使用最新的JNA版本 jna-4.5.2

NativeLibrary.addSearchPath(RuntimeUtil.getLibVlcLibraryName(), Constants.DEPLIB_OUTPUT_DIRECTORY);
Native.loadLibrary(RuntimeUtil.getLibVlcLibraryName(), LibVlc.class);
LibXUtil.initialise();

首先我得到这个错误:

java.lang.UnsatisfiedLinkError: JNA native support (com/sun/jna/linux-aarch64/libjnidispatch.so) not found in resource path

快速搜索后,我发现必须将jar内的jna本机lib目录复制到jvm lib路径中,其中jna jar库已针对几乎所有已知系统预构建了库,如下图所示:

jna-4.5.2内部content.jpeg

之后,上述异常消失了,但又出现了另一个异常:

java.lang.UnsatisfiedLinkError: Can't obtain static method fromNative(Method, Object) from class com.sun.jna.Native

例外是说它无法在com.sun.jna.Native类中找到fromNative(Method,Object)中的方法,但是在反编译该类后,我发现该方法已经存在。

我没主意知道,任何帮助将不胜感激,谢谢!

解决方法:

  1. 撤消此步骤:

快速搜索后,我发现必须将jar内的jna本机lib目录复制到jvm lib路径...

  1. 从我的项目中删除所有jna模块(罐子)
  2. 下载并将以下jar链接到我的项目中: jna.jar jna-platform.jar linux-aarch64.jar

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM