Исключение нарушение прав доступа при обращении к LeapMotion API в OSGi для
Я пытаюсь использовать новый сенсор Leap Motion в OSGi (Felix), но в итоге получаю EXCEPTION_ACCESS_VIOLATION.
В моем манифесте я объявляю код Bundle-NativeCode, такой как
<Bundle-NativeCode>
x86/Leap.dll;x86/LeapJava.dll;osname=win32;processor=x86
</Bundle-NativeCode>
Конечно:
- простая программа с теми же библиотеками вне OSGi работает нормально
- обе библиотеки находятся в моем пакете в папке " x86 "
- "osname=win32; processor=x86" работает для меня (был протестирован с другими bunbles
После декомпилировав банку с прыжковыми движениями, я увидел, что это LeapJava.dll-это единственная библиотека, которая загружается (с помощью System.loadLibrary ("LeapJava")). Возможно ли, что они не загружают свою другую библиотеку правильно?
Есть идеи?
Edit 1: Как было введено разработчиком Felix, эта ссылка может быть полезной http://wiki.osgi.org/wiki/Dependencies_In_Native_Code
1 ответ:
С помощью Нейла Бартлетта и чтения Dependencies_In_Native_Code, Мне в конечном итоге удалось заставить скачкообразное движение работать в OSGi.
Вот что я сделал:
- Оба Прыжка.dll и LeapJava.dll находятся в папке x86 в моем пакете (я на WindowsXP 32bits)
Добавил следующее в мой META-INF / MANIFEST.МФ:
<Bundle-NativeCode> x86/Leap.dll;x86/LeapJava.dll;processor=x86;osname=win32 </Bundle-NativeCode>
В моем коде, перед созданием ком.скачка.прыгать.Контроллер , я назвал системой.loadLibrary ("прыжок") для предварительной загрузки прыжка.DLL-библиотека. Следуя правилам, описанным в Dependencies_In_Native_Code , мне нужно только предварительно загрузить Leap.dll потому что Леапджава.dll загружается с помощью Leap Java API.