java-native-interface - java JNI 错误 java.lang.UnsatisfiedLinkError :

标签 java-native-interface

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;
}

参数声明是否正确?

最佳答案

此消息表示 Java 正在寻找类似于 Java 方法的 native 方法

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

如果您正确生成了头文件并构建了库,这很可能意味着您缺少该方法的实现。

想到的一些事情:
  • 实现该方法后,您是否重建了库?
  • 建库后有没有碰巧改变了Java方法的接口(interface)?
  • 关于java-native-interface - java JNI 错误 java.lang.UnsatisfiedLinkError :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4526198/

    相关文章:

    java - JNI - C++/Java 中的监听器 - 是否可以在 C++ 中实例化 Java 对象并将它们用作参数

    java-native-interface - 将 jbyteArray 转换为字符数组,然后打印到控制台

    android - 无法在 Android 的单个 native C++ 库文件中使用多个函数

    java - 如何检查 JNI 中的内存泄漏

    c++ - WINAPI 消息循环让我抓狂

    java.lang.NoClassDefFoundError :

    android - 在c中使用fwrite()转储内存

    java - 在 Android App 中加载多个 native 库的最佳方法

    java - C++无法使用JNI在Java类中找到构造函数

    java - 在 JNA 中创建全局引用