Я пытаюсь вызвать закрытый метод из собственной реализации другого метода, подобного этому:
jclass cls = (*env)->GetObjectClass(env, obj);
jmethodID output_mid = (*env)->GetMethodID(env, cls, "methodName", "(Ljava/lang/String;)V");
if (output_mid == 0)
{
// Exit
}
Это дает мне исключение "метод не найден".Из того, что я понял, объект класса должен соответствовать классу, в котором был определен целевой метод, поскольку он является закрытым.
Действительно, если я изменю модификатор доступа на защищенный, ошибка исчезнет.Также из журналов я вижу, что GetObjectClass возвращает класс времени выполнения, а не базовый класс.Итак, мой вопрос: как получить правильный базовый класс в JNI?