据说 JNI 中的全局引用是必须由程序员手动释放的引用。它与 c 上下文无关。所以像这样的代码:
{
jclass clsStr = (*env)->NewGlobalRef(env,cls);
}
return clsStr;
会给出一个错误,说clsStr
是 undefined / undeclared。我明白这一点。但我不明白的是这些类型的引用的使用。
clsStr
上面代码中的全局是什么?这个变量在将来或调用返回后如何有用?我还读到“基本上,全局引用对于确保它(及其内容)将在下一次 JNI 调用中继续存在”但我不明白这一点。