Native.loadLibrary () возвращает ноль, когда проект является зависимостью gradle - PullRequest
0 голосов
/ 08 декабря 2018

Реализован проект драйвера java, который использует некоторые .dll файлы с помощью JNA.Он работает довольно хорошо, как проект, когда я строю и запускаю.Однако я не могу загрузить файл .dll, когда этот проект драйвера поврежден и становится зависимостью от другого более крупного проекта.

Я использую синтаксис Native.loadLibrary(LIBRARY_NAME, MY_INTERFACE.class) для загрузки библиотеки в проекте драйвера.Эта строка успешно загружает мою библиотеку в проекте драйвера, но возвращает null, когда это зависимость от другого проекта.Как я могу отладить и выяснить, где проблема?

Чтобы воспроизвести это поведение:

OS: Windows 10 IDE: Intellij Community 2018.2 Java: 1.8.0_191 driver project: https://github.com/ClearControl/GS16AO64c parent project: https://github.com/AhmetCanSolak/clearcontrol

1 Ответ

0 голосов
/ 29 января 2019

Я наконец решил свою проблему.Native.loadLibrary() JNA не удалось получить доступ к элементу, не относящемуся к классу, из банки.Я скопировал DLL-файлы ресурсов во временные файлы и сначала загрузил их:

System.load(tmpFile.getAbsolutePath());

, а затем использовал Native.loadLibrary().Таким образом, это работает.

...