Не удается получить статический метод из класса Native (Method, Object) из класса com.sun.jna.Native - PullRequest
0 голосов
/ 25 сентября 2018

Я использую класс JNA com.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

После быстрого поиска я обнаружил, что должен скопировать каталог собственной библиотеки jna изнутри jar в путь lib jvm, где библиотека jna jar имеет встроенные библиотеки для почти всех известных систем, как показано на рисункениже:

jna-4.5.2 internal content.jpeg

После этого вышеприведенное исключение исчезло, но появилось еще одно:

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

исключение говорит о том, что не удалось найти метод fromNative (Method, Object) в классе com.sun.jna.Native , однако после декомпиляции этого класса я обнаружил, чтометод уже существует.

Я не знаю, любая помощь будет высоко оценена, спасибо!

1 Ответ

0 голосов
/ 25 сентября 2018

решить с помощью:

  1. отменить этот шаг:

После быстрого поиска я обнаружил, что должен скопировать каталог jna native lib изнутрибанка в jvm lib пути ...

удалите все jna модули (банки) из моего проекта загрузите и свяжите следующие файлы в мой проект: jna.jar jna-platform.jar linux-aarch64.jar
...