を使用して.cppファイル内のネイティブメソッドを呼び出すことができませんでした。my javaプログラムは、ライブラリ.dllが正常にロードされる.cppファイルのネイティブメソッドを呼び出すことも、呼び出すこともできませんプログラム。 が実行中に例外java.lang.UnsatisfiedLinkError
がスローされます。 プロジェクトへのライブラリパスを正しく設定しました。ここJava:java.lang.UnsatisfiedLinkError JNI
は私のcppファイルです:
package demojni;
public class Jni1{
private native int printm();
static{
try{
System.out.println(System.getProperty("java.library.path"));
System.loadLibrary("libCppJNILibrary_1");
System.out.println("loaded");
}
catch(Exception e){
System.out.println("can't load\n"+e.getMessage());
}
}
public static void main(String[] arg){
Jni1 api=new Jni1();
int a=api.printm();
}
}
なぜ '_Java_demojni_Demojni_printm'の先頭にアンダースコアがありますか?また、ネイティブコードで指定したクラス名は 'Demojni'ですが、Javaコードでは' Jni1'です。 – Michael
私は間違いを抱きました –