Я использую класс 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 , однако после декомпиляции этого класса я обнаружил, чтометод уже существует.
Я не знаю, любая помощь будет высоко оценена, спасибо!