找不到本机的实现

问题描述

|                                                                                                                       

解决方法

JNI涉及一种确切的命名方案,但并不是很明显。也许您的函数实现不符合它? 例如,如果您希望能够从JAVA代码中调用名为startServer的本机函数,则假设您的包名为com.example.something,而您的类称为MyClass,则您的JAVA类中应具有一个成员函数,如下所示:
private native void startServer();
然后,您的JNI实现应如下所示:
JNIEXPORT void Java_com_example_something_MyClass_startServer(JNIEnv *env,jobject obj) {  

// Do something here...

}
否则,存在链接错误。     ,可以得到此结果的另一个原因是,如果在进行JNI函数调用时未调用库:
static {
    System.loadLibrary(\"myJNIFILE\");
}
应该在实际引用JNI函数之前的某个地方调用。