このエラーで関連する質問を確認しましたが、回答が見つかりませんでした。 私は次のコードを持っています。エラーがjLogメソッドを呼び出すことに関連していると私は消えてエラーをそれを取るので、私は問題が何であるかを理解していない場合は - ちょうど私の最初の経験をJNIで: ネイティブメソッドのJNI - 致命的エラー:JNIに渡されたグローバルまたはローカル参照が正しくありません
static jclass util_class;
static jmethodID log_from_jni;
...
util_class = (*env)->FindClass(env, "package/Util");
if ((*env)->ExceptionOccurred(env)) {
printf("Error occured when loading Util class\n");
}
log_from_jni = (*env)->GetStaticMethodID(env, util_class,
"logFromJNI", "(Ljava/lang/String;)V");
if ((*env)->ExceptionOccurred(env)) {
printf("Error occured when loading logFromJNI method\n");
}
...
void jLog(JNIEnv *env, char* cstr) {
if (util_class != NULL || log_from_jni != NULL) {
jstring str = (*env)->NewStringUTF(env, cstr);
(*env)->CallStaticVoidMethod(env, util_class, log_from_jni, str);
} else {
printf(cstr);
}
}
JNIEXPORT void JNICALL Java_package_callLog(JNIEnv * env, jobject obj) {\
jLog(env, "JNI: Log");//
}
ありがとうございました。
'package.Util'は'パッケージ/ Util'ためのタイプミスがありますか? –
はい、それはタイプミスでした。それについて申し訳ありません – xtcr1st1