Size: a a a

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

2020 January 21

DD

Denis Dodonov in Android NDK (C++) — русскоговорящее сообщество
Sergei Loskutnikov
У меня всмысле, у тебя в этом активити какие стоят разрешения ? Прости, что так дотошно, просто очень бы меня выручило такой вызов сделать
Опять я не понимаю о чём ты
источник

DD

Denis Dodonov in Android NDK (C++) — русскоговорящее сообщество
Сделай java class для вызова из jni  и не парься
источник

SL

Sergei Loskutnikov in Android NDK (C++) — русскоговорящее сообщество
У меня всего три класса - и мне в основном, так уж получилось ,  надо вызвать рекламу, а игровой у меня - иной класс. А я вот про такие штуки в манифесте
android:supportsRtl="true"
источник

SL

Sergei Loskutnikov in Android NDK (C++) — русскоговорящее сообщество
Может с ними какой-то дефект, но буду смотреть в java
источник

DD

Denis Dodonov in Android NDK (C++) — русскоговорящее сообщество
Sergei Loskutnikov
У меня всего три класса - и мне в основном, так уж получилось ,  надо вызвать рекламу, а игровой у меня - иной класс. А я вот про такие штуки в манифесте
android:supportsRtl="true"
С этим связи нет.
источник

DD

Denis Dodonov in Android NDK (C++) — русскоговорящее сообщество
https://yalantis.com/blog/android-ndk-calling-kotlin-from-native-code/ Вроде всё понятно описано
источник

SL

Sergei Loskutnikov in Android NDK (C++) — русскоговорящее сообщество
Понятно то понятно, но у  меня так не работает, вот в чём неприятность. Но я понял, спасибо
источник

DD

Denis Dodonov in Android NDK (C++) — русскоговорящее сообщество
Sergei Loskutnikov
Понятно то понятно, но у  меня так не работает, вот в чём неприятность. Но я понял, спасибо
источник

SL

Sergei Loskutnikov in Android NDK (C++) — русскоговорящее сообщество
Может, я ещё внимательнее прочту, но у меня
источник

SL

Sergei Loskutnikov in Android NDK (C++) — русскоговорящее сообщество
appsLos->activity->vm->AttachCurrentThread(&jni, NULL);
источник

SL

Sergei Loskutnikov in Android NDK (C++) — русскоговорящее сообщество
Я это предусмотрел, может ошибка в том, что у меня кастомный app_glue ? но тут не должно быть каких-то особых вариантов, но спасибо ещё раз, буду дальше искать
источник
2020 January 23

R

Rose in Android NDK (C++) — русскоговорящее сообщество
Могут ли вызываться натиные методы без явной загрузки либы в loadlibrary
источник
2020 January 24

V🤬

Velko 🤬 in Android NDK (C++) — русскоговорящее сообщество
Пацаны дайте конфиги андройдом
источник
2020 January 25

SL

Sergei Loskutnikov in Android NDK (C++) — русскоговорящее сообщество
@denis_dodonov Немного разобрался, спасибо, правильная ссылка, но тут сразу несколько вопросов, как у тебя это реализовано ? То есть, вот вызов JNI_OnLoad в нём я


jclass tmp = env->FindClass("com/game/company/javafindclassjni/MainActivity");
myClass = reinterpret_cast<jclass>(env->NewGlobalRef(tmp));

Где myClass это глобальная переменная
static jclass myClass;

И он эту стадию проходит на ура (без ошибок), но тут сразу следующий вопрос. Теперь, при попытки вызвать метод вытянутой из этого класса (уже непосредственно в программе, а не в Jni_OnLoad) у меня вот такая ошибка:
источник

SL

Sergei Loskutnikov in Android NDK (C++) — русскоговорящее сообщество
NoSuchMethodError: no non-static method "Ljava/lang/Class;.callJAvaLos()V"
источник

SL

Sergei Loskutnikov in Android NDK (C++) — русскоговорящее сообщество
Мой вопрос такой, а какой алгоритм вызова метода из такого класса ? Так как стандартный, очевидно, не проходит. Вызываю вот так

jclass clazz = jni->GetObjectClass(myClass);
jmethodID methodID = jni->GetMethodID(clazz, "callJAvaLos", "()V");
источник

SL

Sergei Loskutnikov in Android NDK (C++) — русскоговорящее сообщество
И после этого - ошибка
источник

SL

Sergei Loskutnikov in Android NDK (C++) — русскоговорящее сообщество
jni->CallVoidMethod(clazz, methodID);
источник

SL

Sergei Loskutnikov in Android NDK (C++) — русскоговорящее сообщество
Но до этого, никаких ошибок
источник

DD

Denis Dodonov in Android NDK (C++) — русскоговорящее сообщество
Sergei Loskutnikov
@denis_dodonov Немного разобрался, спасибо, правильная ссылка, но тут сразу несколько вопросов, как у тебя это реализовано ? То есть, вот вызов JNI_OnLoad в нём я


jclass tmp = env->FindClass("com/game/company/javafindclassjni/MainActivity");
myClass = reinterpret_cast<jclass>(env->NewGlobalRef(tmp));

Где myClass это глобальная переменная
static jclass myClass;

И он эту стадию проходит на ура (без ошибок), но тут сразу следующий вопрос. Теперь, при попытки вызвать метод вытянутой из этого класса (уже непосредственно в программе, а не в Jni_OnLoad) у меня вот такая ошибка:
А в onLoad вызывается? Я сам никогда такого не делал на самом деле...
источник