JavaVM* ローカルを保存するために JNI_OnLoad を呼び出しています。
JavaVM * and_jvm = NULL;
jint JNI_OnLoad(JavaVM* vm, void* reserved)
{
and_jvm = vm;
return JNI_VERSION_1_6;
}
スレッドを開始するときに呼び出します
void * thread_f (void * v)
{
jint attachResult = and_jvm->AttachCurrentThread(&env,NULL);
//The attachResult is 0.
jclass my_class= (jclass)env->NewGlobalRef(env->FindClass("my/package/com/MyClass"));
//my_class is 0
if (my_class == 0)
return NULL;
}
スレッドから NewGlobalRef を呼び出すと、有効なオブジェクトが返されます。なにが問題ですか?
10xs、ナホム