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. Код для загрузки библиотеки тот же, за исключением того, что имя библиотеки отличается.
Я попробовал посмотреть на сами фреймворки и увидел лишь незначительные различия:
Используемая версия JNA — 3.5.2. Мы не можем обновиться до 4.x, потому что есть другая ошибка, которая вызывает исключение, как только мы пытаемся загрузить нашу собственную библиотеку.
Если я попытаюсь каким-либо образом использовать эту библиотеку, я получу очень запутанную ошибку:
[code]java.lang.UnsatisfiedLinkError: Unable to load library 'FREngine': JNA native support (darwin/libFREngine.jnilib) not found in resource path (...entire classpath here...) [/code]
Почему меня это сбивает с толку:
[list] [*].jnilib — это расширение файла для библиотек JNI. Поскольку я использую JNA, я бы не ожидал, что JNA будет использовать какую-либо библиотеку JNI, кроме своей собственной, "jnidispatch". [*]JNA ищет путь к классам для этого файла, но ни в коем случае она там не окажется, потому что это просто какая-то случайная библиотека, которую я пытаюсь импортировать. Разве он не должен искать DYLD_FRAMEWORK_PATH? [*]Другие собственные библиотеки, которые инициализируются точно таким же образом, работают нормально. Например, можно разрешить CoreFoundation. Код для загрузки библиотеки тот же, за исключением того, что имя библиотеки отличается. [/list]
Я попробовал посмотреть на сами фреймворки и увидел лишь незначительные различия:
[list] [*][code]FREngine.framework[/code] находится в /Library, CoreFoundation.framework находится в /System/Library [*][code]FREngine.framework/Versions[/code] содержит каталог с более длинным и сложным именем, чем CoreFoundation.framework, который имеет только одну версию под названием A. [*][code]FREngine.framework/Versions/[ver][/code] содержит заголовки и библиотеки [/list]
Используемая версия JNA — 3.5.2. Мы не можем обновиться до 4.x, потому что есть другая ошибка, которая вызывает исключение, как только мы пытаемся загрузить нашу собственную библиотеку.