2
我在C++“监听器类”(或多或少)中调用了一些Java对象的某个函数。我怀疑有内存泄漏:实现JNI监听器
JNIEnv *env = NULL;
vm_->AttachCurrentThread(&env, NULL);
const jclass cls = env->FindClass(...);
const jmethodID meth = env->GetMethodID(...);
const jobject obj = env->NewObject(cls, meth, ...);
[ more code ]
env->DeleteLocalRef(obj);
我的问题是:我应该也释放CLS和甲基本地参考? JNI文档不太清楚。
由于某种内存分配。看来内存泄漏是在我链接到的本地库中,而不是在我的JNI代码中。 无论如何,我刚刚发现了Push/PopLocalFrame(),并且使用它们要比释放每个本地引用容易得多。 – 2010-03-18 08:33:25