Android JNI NoSuchMethodError:在Ljava/lang/class类中找不到方法

Android JNI NoSuchMethodError:在Ljava/lang/class类中找不到方法,android,java-native-interface,Android,Java Native Interface,我正在使用Android JNI,其中我试图从JNI调用Java方法,但出现以下错误: java.lang.NoSuchMethodError:Ljava/lang/class类中没有名为='callmeback'签名='(I)V'的方法 这是我的代码片段 Java代码- private void callmeback(int radius) { Log.d("native", "hieee" + radius); } JNIEXPORT jboolean JNICALL Java_com_

我正在使用Android JNI,其中我试图从JNI调用Java方法,但出现以下错误:

java.lang.NoSuchMethodError:Ljava/lang/class类中没有名为='callmeback'签名='(I)V'的方法

这是我的代码片段

Java代码-

private void callmeback(int radius) 
{
Log.d("native", "hieee" + radius);
}
JNIEXPORT jboolean JNICALL Java_com_example_nativeaudio_NativeAudio_selectClip(JNIEnv * env, jobject obj,
            jint count)
    {
    ...........
    jclass cls = (*env)->GetObjectClass(env, obj);
    jmethodID mid = (*env)->GetMethodID(env, cls, "callmeback", "(I)V");
    if (mid == 0) {
        return;
    }
    (*env)->CallVoidMethod(env, obj, mid, count);
    return JNI_TRUE;
    }
本机代码-

private void callmeback(int radius) 
{
Log.d("native", "hieee" + radius);
}
JNIEXPORT jboolean JNICALL Java_com_example_nativeaudio_NativeAudio_selectClip(JNIEnv * env, jobject obj,
            jint count)
    {
    ...........
    jclass cls = (*env)->GetObjectClass(env, obj);
    jmethodID mid = (*env)->GetMethodID(env, cls, "callmeback", "(I)V");
    if (mid == 0) {
        return;
    }
    (*env)->CallVoidMethod(env, obj, mid, count);
    return JNI_TRUE;
    }
还有一件事,我已经在NativeAudio类中编写了这个方法,为什么它会给出错误作为Ljava/lang/class中找不到的方法。 我是不是遗漏了什么


谢谢。

能否在Java代码中显示
selectClip()
方法的声明?特别是,您是否将其声明为“static”?您好,这就是我调用selectClip()的方式,我没有将其声明为static。((按钮)findViewById(R.id.hello)).setOnClickListener(新OnClickListener(){public void onClick(View-View){selectClip(1);}}});这不是宣言,这是号召。在Java代码的某个地方,必须使用
native
关键字声明方法。此外,当添加额外的代码位时,如果将其编辑到问题中,而不是粘贴到注释中,阅读起来会容易得多。