Статьи
Форум
Q&A
Полезные коды
Войти
Регистрация
Привет, Гость!
Войти
Войти с VK
Войти с Google
Регистрация
Информация
Вопросы и ответы
Вопрос
0 голосов
516 просмотров
30.12.2019 / 16:19
SuperSystem
хранение обекта в нативном коде
java
jni
c++
Когда я сохраняю объект в нативном коде и достаю обратно, то получается ошибка.
Подскажите как правильно это сделать.
Вот пример:
[копировать]
[скачать]
#include<jni.h>
jobject o
;
extern
"C"
{
JNIEXPORT
void
JNICALL Java_jni_test_TestJni_set
(
JNIEnv
*
env, jobject thiz,jobject obj
)
{
o
=
obj
;
}
JNIEXPORT jobject JNICALL Java_jni_test_TestJni_get
(
JNIEnv
*
env, jobject thiz
)
{
return
o
;
}
}
Я сначала добавляю TestJni.set(Object)
А потом достаю Object=TestJni. get()
И выходит ошибка.
Заранее спасибо.
Изм.
SuperSystem
от 30.12.2019 / 16:28
30.12.2019 / 16:27
SuperSystem
кстати с переменными типа jint, jfloat... ошибок нету, тут конкретно с объектами проблема.
30.12.2019 / 19:06
aNNiMON
Так и пишет "Ошибка" и всё? И никаких подробностей?
30.12.2019 / 21:24
SuperSystem
Хоть оператор try ставь, вообще из приложения выходит.
31.12.2019 / 02:26
Tygrain
Какие же всетаки уродливые все эти "Java_jni_test_TestJni_"
31.12.2019 / 05:10
Витаминыч
Алехандр, по мне так вообще весь код какая-то бредятина
Ответы
2 голоса
#
30.12.2019 / 21:32
SuperSystem
Проблема решена!
Нужно было закрепить обект в jni
[копировать]
[скачать]
#include<jni.h>
jobject o
;
extern
"C"
{
JNIEXPORT
void
JNICALL Java_jni_test_TestJni_set
(
JNIEnv
*
env, jobject thiz,jobject obj
)
{
o
=
env
-
>
NewGlobalRef
(
obj
)
;
}
JNIEXPORT jobject JNICALL Java_jni_test_TestJni_get
(
JNIEnv
*
env, jobject thiz
)
{
return
o
;
}
}
Всего: 1
Вопросы и ответы
Топ участников
Последние ответы
Комментарии
Поделиться
Разделы
Авторские статьи
Вопросы и ответы
Полезные коды
Форум
Гостевая книга
Реклама
Мы в соцсетях