возврат значения
возврат значения
как из JNI функции вернуть значение не стандартного JNI типа а собственного или библиотечного класса?? как должен выглядеть ретурн и прототип такой функции? можете привести фрагмент кода или дать ссылку
Re: возврат значения
json?
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.
Re: возврат значения
нет просто у меня есть библиотека подключена к ndk а там есть класс для хранения изображения и я хочу загрузить изображение в обьект этого класса в функции jni и вернуть этот обьект этого класса ?? Как правильно в этом случае прописать return у jni функции?? Как возвращать нестандартный тип из jni метода?? Можете фрагмент привести?
Re: возврат значения
Что значит не стандартный?
Если это Java объект то возвращайте jobject:
с++:
[syntax=cpp]jobject
Java_com_example_hellojni_HelloJni_ObjFromJNI( JNIEnv* env, jobject thiz, jobject myObj)
{
//действия над myObj
return myObj;
}[/syntax]
java:
[syntax=java5]public native MyObj ObjFromJNI(MyObj myObj);[/syntax]
Если это C++ объект, то в Java его никак вернуть не получится (напрямую).
Если это Java объект то возвращайте jobject:
с++:
[syntax=cpp]jobject
Java_com_example_hellojni_HelloJni_ObjFromJNI( JNIEnv* env, jobject thiz, jobject myObj)
{
//действия над myObj
return myObj;
}[/syntax]
java:
[syntax=java5]public native MyObj ObjFromJNI(MyObj myObj);[/syntax]
Если это C++ объект, то в Java его никак вернуть не получится (напрямую).
Re: возврат значения
а как тогда в Ndk подключить stl классы си++?? я работаю в Android studio. В Application. mk добавил APP_STL := stlport_static и все равно классы stl не видит. Может Ndk переустановить?? как решить проблему??
Re: возврат значения
пробуйте так: APP_STL := gnustl_static
Re: возврат значения
пробовал бестолку там в Android studio все утилитой ndk-build отлаживается а она походу плохо отлаживает есть явные баги
Re: возврат значения
ndk-build к Android Studio прямого отношения не имеет, можете хоть через командную строку собирать нативную часть.
Не должно быть проблем с lib stl. Если есть какие-то конкретные ошибки при сборке, то их и показывайте, а в домыслах смысла нет.
Не должно быть проблем с lib stl. Если есть какие-то конкретные ошибки при сборке, то их и показывайте, а в домыслах смысла нет.
Re: возврат значения
при сборке через терминал при помощи утилиты ndk-build она выдает следующую ошибку unknown symbol string при обьявлнении string a в коде, хотя и хедер и пространство имен std подключено. И в Application. mk прописано как вы говорите. В чем же тогда проблема??
Re: возврат значения
Не должно быть такого. Показывайте код.
Для стрингов достаточно "#include <stdlib.h>". Я пространство имен не подключаю, предпочитаю писать "std::string". Пробуйте может в этом дело. Хотя должно быть без разницы.
Для стрингов достаточно "#include <stdlib.h>". Я пространство имен не подключаю, предпочитаю писать "std::string". Пробуйте может в этом дело. Хотя должно быть без разницы.
Re: возврат значения
а почему #include <stdlib . h> а не # include < string>??
Последний раз редактировалось yura91 19 май 2015, 09:47, всего редактировалось 1 раз.
Re: возврат значения
ведь в заголовке string находится объявление класса string?? А например vector как тогда подключать туда??
Re: возврат значения
Честно не задумывался почему так. У меня подключена stdlib.h и работаю и std::string, и std::vector, и возможно еще что-то чего я уже не помню.
Re: возврат значения
Код: Выделить всё
#include <jni.h>
#include "com_example_testir_MainActivity.h"
#include <string.h>
#include <string>
#include <iostream>
#include <vector>
#include <stdlib.h>
JNIEXPORT jstring JNICALL Java_com_example_testir_MainActivity_get_1text_1from_1cpp
(JNIEnv * env, jobject obj)
{
std::string a; здесь ошибка
std::vector<string> vec; здесь ошибка
return env->NewStringUTF( "hello from C++" );
}
Код: Выделить всё
APP_ABI := armeabi armeabi-v7a
APP_STL := stlport_static