NDK下用C去调JAVA的类的成员函数,老是出现java.lang.NoSuchMethodError,为什么?

解决方案 »

  1.   

    GetMethodID( )的时候,老是说method not found.明明方法在JAVA类里面是已经定义了的。更为奇怪的是:我去得到一个"( )V"方法是可以成功的,但去得到一个"(I,I)V"方法就老是不成功,好奇怪!!!VM不识别?我重启系统也没作用。看到一个要把VM附到当前线程不知道怎么理解。
      

  2.   

    我用的是NDK C的编译环境,是不是要用NDK C++编译环境?因为在C++下才有真正类的概念!!!
      

  3.   

    Bogus method descriptor:(I,I)V伪造的方法描述符:(I,I)V---------------为什么会是伪造的???!!!
      

  4.   

    你在java code中load jni的动态库了吗?
      

  5.   

    如果已经初始化了jni,主要应该是函数申明问题,请用C语言风格申明接口函数
      

  6.   

    NDK就是帮你用JAVA掉C语言的实现,这个地方C是没办法掉JAVA的类库的
      

  7.   


    肯定是可以的,因为我已经调成功不带参数的JAVA层的类的成员函数.只是调带参数的函数不成功!
      

  8.   

    求教~
    希望楼主整完之后分享下~
    PS:对比下你已经调成功的和你调不成功的除了参数还有啥其他差别没,比如native修饰符或者static或者什么的,你要不试试把你原调成功的函数加上参数再调用?还有就是参数类型和JNI参数类型的问题~
      

  9.   

    java.lang.NoSuchMethodError说明JNI库中没有相应的方法,没有注册到JNI环境中去
      

  10.   

    原来是一个细节地方没写对----(I,I)V,正确的写法应该是:(II)V。中间没有“,”号的。