Можно ли создать NewGlobalRef из класса в последних Android версиях? - PullRequest
0 голосов
/ 26 апреля 2020

Я импортировал и протестировал этот проект:

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

в Android Studio и работал хорошо.

Но когда я копирую код для другого нового проекта, у меня появляется следующая ошибка:

«Несовместимые типы точек jclass и` jobject »

В этой строке:

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

введите описание изображения здесь

Разве нельзя использовать «NewGlobalRef» для создания новой ссылки на класс в более поздних версиях?

1 Ответ

0 голосов
/ 26 апреля 2020

NewGlobalRef всегда возвращает jobject, даже если вы присваиваете ему jclass (который является подклассом jobject).

Вы можете устранить это предупреждение, явно уменьшив до jclass, либо как

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

или

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