如标题中所述,我的java程序无法调用或调用.cpp文件中的本机方法,其中库.dll在程序中成功加载。
但是在运行它时会引发异常$this->viewBuilder()->autoLayout(false);
。
我已经正确设置了一个项目的库路径。
这是我的cpp文件:
java.lang.UnsatisfiedLinkError
这里是.java文件:
#include "jni.h"
#include "Demojni.h"
#include <iostream>
using namespace std;
extern "c"{
JNIEXPORT jint JNICALL _Java_demojni_Demojni_printm(JNIEnv *env, jobject object){
cout<<"call from c++";
return 1;
}
}
int main(){
return 1;
}
答案 0 :(得分:0)
确保匹配方法名称和包名称。
看看这里:
http://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/design.html
部分:&#34;解析原生方法名称&#34;
事实上,正确设置所有内容的简便方法是使用javah。
在这里看看简单的Hello world示例:
答案 1 :(得分:0)
您已将类的名称从DemoJNI1
更改为Jni1
,而不重新生成.h文件和/或不调整.c文件中JNI方法的名称。