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;
}
是正确声明的参数吗?
答案 0 :(得分:7)
此消息表示Java正在寻找类似于Java方法的本机方法
double[] calibrate(double[], double[], int, int)
如果您已正确生成头文件并构建库,这很可能意味着您缺少该方法的实现。
有些事情会浮现在脑海中:
答案 1 :(得分:1)
此隐藏错误的另一个原因是导入错误的<jni.h>
文件时。例如,如果您正在针对x86进行编译,但将includes
路径指向标题的x64风格。