是否可以从最近 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(...)
我已经导入并测试了这个项目:
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(...)