如何解决找不到本机的实现
|解决方法
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函数之前的某个地方调用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。