我正在研究Android JNI,其中我试图从JNI调用Java方法,但是收到以下错误:
java.lang.NoSuchMethodError:类Ljava / lang / Class中没有name ='callmeback'cignate ='(I)V'的方法;
这是我的代码片段 .
Java code-
private void callmeback(int radius)
{
Log.d("native", "hieee" + radius);
}
Native code -
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中找不到该方法 . 我在这里错过了一些东西 .
谢谢 .