是否可以从最近 Android 版本中的 Class 创建 NewGlobalRef?

Is it possible to create a NewGlobalRef from a Class in last Android versions?

我已经导入并测试了这个项目:

https://github.com/android/ndk-samples/tree/master/hello-jni

在 Android Studio 中,效果很好。

但是当我为另一个新项目复制代码时出现以下错误:

“不兼容的点类型 jclass 和 `jobject”

这一行:

    g_ctx.mainActivityClz = (*env).NewGlobalRef(clz);

enter image description here

是否无法使用“NewGlobalRef”为更新的版本中的 class 创建新引用?

NewGlobalRef 总是 returns 一个 jobject 即使你给它一个 jclass (它是 jobject 的子类)。

您可以通过显式向下转换为 jclass 来解决此警告,或者作为

(jclass)env->NewGlobalRef(...)

static_cast<jclass>(env->NewGlobalRef(...)