jni没有';在内部类java.lang.NoSuchMethodError中找不到方法
对于如何使用JNI访问嵌套类中的方法,我有一个问题jni没有';在内部类java.lang.NoSuchMethodError中找不到方法,java,c++,java-native-interface,inner-classes,nosuchmethoderror,Java,C++,Java Native Interface,Inner Classes,Nosuchmethoderror,对于如何使用JNI访问嵌套类中的方法,我有一个问题 public class AccountUI { public native ExtrasWageUI[] getExtrasWages(); public class ExtrasWageUI { public ExtrasWageUI() { mCppHandle = callConstructorN(); } public ExtrasWageUI
public class AccountUI {
public native ExtrasWageUI[] getExtrasWages();
public class ExtrasWageUI {
public ExtrasWageUI() {
mCppHandle = callConstructorN();
}
public ExtrasWageUI(long cppHandle) {
mCppHandle = cppHandle;
}
private native long callConstructorN();
}
}
我将在accountUI.getExtrasWages()获取错误信息:
java.lang.NoSuchMethodError:类中没有名称为“”签名为“”(J)V'的方法
Lde/projects/customer/../myProject/domain/AccountUI$ExtrasWageUI
JNI找不到该方法。
有人知道如何访问内部类中的方法吗?您必须在签名中添加外部类:
environment->GetMethodID(resultClassAssistantUI, "<init>", "(L.../domain/AccountUI;J)V");
environment->GetMethodID(resultClassAssistantUI,”,“(L../domain/AccountUI;J)V”);
更正。它确实找到了类。它没有找到方法。在编写JNI方法签名时,不要自己编写。使用javap-s
的输出。从来没有错。