У меня проблема с совместным использованием потока между Java и C с JNI.Я пытаюсь вызвать метод Java из C, но я получаю исключение nosuchmethodfound
, когда пытаюсь получить GetObjectMethodID
.
C Код:
jclass cls = (*env)->GetObjectClass(env, obj);
jmethodID aMethodID = (*env)->GetMethodID(env, cls, "callbackmethod", "(I)V");
if (aMethodID == 0) {
log("Unable to get methodID"); //Always getting aMethodID as 0
}
int myvar = 7;
(*env)->CallVoidMethod(env, obj, aMethodID, myvar);
Код Java:
public class myclass extends activity {
private void callbackmethod(int i) {
Log.d("Tag", "In Java code");
}
-------
more code
}
Теперь я всегда получаю сообщение об ошибке Ljava/lang/NoSuchMethodError;: callbackmethod
.
Все выглядит хорошо, но мой код не работает.В чем проблема?