Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Java: Общие вопросы > JNI & UnsatisfiedLinkError |
Автор: Metal_Heart 19.4.2006, 13:25 | ||||||||
О Великий форум! У меня возникла такая проблема с JNI:
в результате имею ВОТ ТАКУЮ ошибку, млин:
вот нативный код [header]:
вот нативный код [source]:
а самое обидное то, что пока я не влез дорабатывать эти исходники (которые сам и писал) оно работало, ёпрст |
Автор: LSD 19.4.2006, 14:05 |
У тебя в Java классе объявлен метод portClose, а в заголовочном файле Java_ComPort_closePort, естественно он не может найти его. |
Автор: val 19.4.2006, 14:07 |
Не уверен, но мне кажется, что почему-то имеет место конфликт имён, у тебя есть С++ функция ClosePort, которую нельзя дернуть из Java и вместе с тем, есть java-функция closePort. Попробый как-то по разному их называть. |
Автор: Metal_Heart 19.4.2006, 14:11 |
val, я, конечно, был уверен, что не это, но проверил - ничего не изменилось |
Автор: Metal_Heart 19.4.2006, 14:26 | ||
использую JDk1.5.0_06 и чуток упростил Java-код:
|
Автор: Metal_Heart 19.4.2006, 15:23 | ||||||||
Докладываю: Проект был ранее откомпилирован, создан JAR-ик отправлен в JDK/JRE/LIB/EXT/ и подключен к IDE, в результате чего javah не мог (или не хотел) создавать обнавленный header-файл для С++ т.е.
header всё равно имел вид:
Это была проблема №1 - решилась удалением вышеупомянутого JAR-ика как из упоминания в IDE, так и заодно из JDK/JRE/LIB/EXT/ Проблема №2 - человеческий фактор, который довольно трудно сразу увидеть: вот нативный код [header]:
вот нативный код [source]:
Так то, вот. ![]() |
Автор: LSD 19.4.2006, 16:04 |
Нет, просто перепутал функции. |