Size: a a a

Android NDK (C++) — русскоговорящее сообщество

2020 May 18

AT

Arkadi Tolkun in Android NDK (C++) — русскоговорящее сообщество
К слову новый Android Studio умеет подсказывать сигнатуры когда пишешь код на сях
источник

AT

Arkadi Tolkun in Android NDK (C++) — русскоговорящее сообщество
те если написал что-то вида:
jclass cls = env->FindClass(...)
jmethodID mid = env->FindMethidID(cls,
источник

AT

Arkadi Tolkun in Android NDK (C++) — русскоговорящее сообщество
вот на этом месте у меня срабатывает подсказка и можно выбрать какую функцию ищем ...
источник

DG

Dmitry Gordin in Android NDK (C++) — русскоговорящее сообщество
да, вообще топ фича
источник

DG

Dmitry Gordin in Android NDK (C++) — русскоговорящее сообщество
ток будте осторожны с nested классами
источник

AT

Arkadi Tolkun in Android NDK (C++) — русскоговорящее сообщество
нее. с nested классами в jni я вообще избегаю работать
источник

DG

Dmitry Gordin in Android NDK (C++) — русскоговорящее сообщество
он мне как-то раз убеждал что нужно / вместо $ ставить
(ну и есесна падал)
источник

DG

Dmitry Gordin in Android NDK (C++) — русскоговорящее сообщество
Arkadi Tolkun
нее. с nested классами в jni я вообще избегаю работать
why not?
источник

AT

Arkadi Tolkun in Android NDK (C++) — русскоговорящее сообщество
Если callback - то по имени я класс не ищу
источник

AT

Arkadi Tolkun in Android NDK (C++) — русскоговорящее сообщество
В других случаях - врятли будет nested класс 🙂
источник

AT

Arkadi Tolkun in Android NDK (C++) — русскоговорящее сообщество
proguard имена корявит. лень исключения писать. можно сказать чтобы не портил имена для callback - ов и тогда будет всегда норм работать с любыми nested классами
источник

DG

Dmitry Gordin in Android NDK (C++) — русскоговорящее сообщество
а как ты калбеки делаешь?
источник

AT

Arkadi Tolkun in Android NDK (C++) — русскоговорящее сообщество
интерфейсом
источник

DG

Dmitry Gordin in Android NDK (C++) — русскоговорящее сообщество
а у интерфейса не покорявит? 🤔
источник

AT

Arkadi Tolkun in Android NDK (C++) — русскоговорящее сообщество
так доя интерфейса сказал чтобы имена не корявил. и все кто будут интерфейс реализовывать - имена методов будут норм
источник

AT

Arkadi Tolkun in Android NDK (C++) — русскоговорящее сообщество
а само имя класса - будет вида a.b$1
источник

A

Alex in Android NDK (C++) — русскоговорящее сообщество
Alex
Как получить имя класса (строкой) из jclass?

https://stackoverflow.com/a/12730789/634821
Но здесь нужен объект класса, он не всегда есть. Неужели никак нельзя без инстанса, по одному jclass, статическими методами? Это кажется очень странным.
Если кому интересно - всё оказалось очень просто:
jclass cls_Class = env->GetObjectClass(cls);
auto getName = findMethod(cls_Class, "getName", "()Ljava/lang/String;");
auto name = (jstring) env->CallObjectMethod(cls, getName);

Мне объяснили, что jclass - это инстанс объекта Class, я не знал, не помню, чтобы где-то это читал в доках по JNI. Хотя мог и просто не заметить.
источник

AT

Arkadi Tolkun in Android NDK (C++) — русскоговорящее сообщество
Это же Java. Все что там есть можно из jni вызвать.
источник

SL

Sergei Loskutnikov in Android NDK (C++) — русскоговорящее сообщество
Нельзя работать с разными классами, я так и не смог и работаю с одним =)) Но крутое решение, сохраню
источник

DG

Dmitry Gordin in Android NDK (C++) — русскоговорящее сообщество
какими разными классами?
источник