jni在内部类java.lang.NoSuchMethodError中找不到方法

时间:2015-01-27 12:40:04

标签: 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(long cppHandle) {
          mCppHandle = cppHandle;
        }

      private native long callConstructorN();
   }
  }

我会在accountUI.getExtrasWages()处收到错误:

  

java.lang.NoSuchMethodError:在课堂上没有名称=''signature ='(J)V'的方法   LDE /项目/客户/.../ myProject的/域/ AccountUI $ ExtrasWageUI;

JNI找不到方法。 有谁知道如何在内部类中访问该方法?

1 个答案:

答案 0 :(得分:1)

您必须在签名中添加外部类:

environment->GetMethodID(resultClassAssistantUI, "<init>", "(L.../domain/AccountUI;J)V");