JNIEXPORT void JNICALL Java_com_test(JNIEnv *env, jobject obj, jlong t)
{
m_jobject = env->NewGlobalRef(obj);
}
사용하는 쪽 함수에서
jmethodID mid = env->GetMethodID(m_jClass, "setText", "(ILjava/lang/String;)V");
jobjectRefType t = env->GetObjectRefType(m_jobject);
LOGI("GetObjectRefType = %d", t);
env->CallVoidMethod(m_jobject, mid, i, text);
LOGI로 확인한 결과
JNIInvalidRefType = 0
JNILocalRefType = 1
JNIGlobalRefType = 2
JNIWeakGlobalRefType = 3
return 값 2로 확인 되지만
CallVoidMethod 실행시 오류 발생으로 앱이 종료됩니다.
java_vm_ext.cc:594] JNI DETECTED ERROR IN APPLICATION: JNI ERROR (app bug): jobject is an invalid local reference: 0xb400006f41064991 (deleted reference at index 2047357516 in a table of size 0)
java_vm_ext.cc:594] in call to CallVoidMethodV
이렇게 뜨면서 종료됩니다.
분명 Global로 사용하도록 되어 있지만 jobject is an invalid local reference 이 오류가 발생하여 못 찾고 있습니다.
도움 부탁드립니다.
이런경우 어떤 문제인지요.