«Невозможно загрузить библиотеку: встроенная поддержка JNA не найдена в пути к ресурсу» при попытке загрузить библиотекуJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 «Невозможно загрузить библиотеку: встроенная поддержка JNA не найдена в пути к ресурсу» при попытке загрузить библиотеку

Сообщение Anonymous »

У меня есть вот такая заглушка библиотеки JNA:

Код: Выделить всё

public interface FREngine extends Library {
NativeLibrary JNA_NATIVE_LIB = NativeLibrary.getInstance("FREngine");
FREngine INSTANCE = (FREngine) Native.loadLibrary("FREngine", FREngine.class);
}
Если я попытаюсь каким-либо образом использовать эту библиотеку, я получу очень запутанную ошибку:

Код: Выделить всё

java.lang.UnsatisfiedLinkError: Unable to load library 'FREngine':
JNA native support (darwin/libFREngine.jnilib) not found in resource path
(...entire classpath here...)
Почему меня это сбивает с толку:
  • .jnilib — это расширение файла для библиотек JNI. Поскольку я использую JNA, я бы не ожидал, что JNA будет использовать какую-либо библиотеку JNI, кроме своей собственной, "jnidispatch".
  • JNA ищет путь к классам для этого файла, но ни в коем случае она там не окажется, потому что это просто какая-то случайная библиотека, которую я пытаюсь импортировать. Разве он не должен искать DYLD_FRAMEWORK_PATH?
  • Другие собственные библиотеки, которые инициализируются точно таким же образом, работают нормально. Например, можно разрешить CoreFoundation. Код для загрузки библиотеки тот же, за исключением того, что имя библиотеки отличается.
Я попробовал посмотреть на сами фреймворки и увидел лишь незначительные различия:
  • Код: Выделить всё

    FREngine.framework
    находится в /Library, CoreFoundation.framework находится в /System/Library
  • Код: Выделить всё

    FREngine.framework/Versions
    содержит каталог с более длинным и сложным именем, чем CoreFoundation.framework, который имеет только одну версию под названием A.
  • Код: Выделить всё

    FREngine.framework/Versions/[ver]
    содержит заголовки и библиотеки
Используемая версия JNA — 3.5.2. Мы не можем обновиться до 4.x, потому что есть другая ошибка, которая вызывает исключение, как только мы пытаемся загрузить нашу собственную библиотеку.

Подробнее здесь: https://stackoverflow.com/questions/232 ... h-on-tryin
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»