java ошибка JNI java.lang.UnsatisfiedLinkError: - PullRequest
5 голосов
/ 24 декабря 2010
java -Djava.library.path=. TestJNI
>>>>

Exception in thread "main" java.lang.UnsatisfiedLinkError: TestJNI.calibrate([D[DII)[D
 at TestJNI.calibrate(Native Method)
 at TestJNI.main(TestJNI.java:61)

Я знаю, что библиотека загружается, иначе ошибка говорит, что не могу найти калибровочную библиотеку.что означает указанная выше ошибка?

РЕДАКТИРОВАТЬ

это моя реализация -

JNIEXPORT jdoubleArray JNICALL Java_TestJNI_cailbrate (JNIEnv * env, jobject jobj, jdoubleArray rtt, jdoubleArray distance ,jint activecount,jint passivecount) {
jdoubleArray jresult = (*env)->NewDoubleArray(env,3);
 .......
return jresult;
}

правильно ли объявлены параметры?

Ответы [ 2 ]

7 голосов
/ 24 декабря 2010

Это сообщение означает, что Java ищет собственный метод, который похож на метод Java

double[] calibrate(double[], double[], int, int)

Если вы правильно сгенерировали файлы заголовков и создали библиотеку, это, скорее всего, означает, что вам не хватает реализации этого метода.

Некоторые вещи, которые приходят на ум:

  • Вы перестроили библиотеку после того, как внедрили метод?
  • Случалось ли вам изменять интерфейс метода Java после создания библиотеки?
1 голос
/ 28 мая 2012

Другая причина этой загадочной ошибки - импорт неверного файла <jni.h>. Например, если вы компилируете против x86, но укажите свой includes путь к заголовку x64 заголовка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...