我的问题很简单,如何在C ++上实例化Java对象(虽然是JNI)并返回这些创建对象的数组?
类似的东西:
jclass cls = g_jniEnv->FindClass("Lbr/com/iba/model/Annotation;");
jmethodID meth = g_jniEnv->GetMethodID(cls, "setBookmark1", "(Ljava/lang/String;)V");
我如何实例化这个cls对象并调用方法然后从这个方法返回它?
答案 0 :(得分:4)
实际上,我解决了它:
JNIEXPORT jobject JNICALL Java_com_rmsdk_wrapper_RMServices_getBookmarkNew(
JNIEnv *env, jobject thiso) {
jclass cls = g_jniEnv->FindClass("br/com/iba/model/Annotation");
jobject obj = g_jniEnv->AllocObject(cls);
jmethodID meth1 = g_jniEnv->GetMethodID(cls, "setBookmark1", "(Ljava/lang/String;)V");
jmethodID meth2 = g_jniEnv->GetMethodID(cls, "setPage", "(I)V");
jstring jAssetName = g_jniEnv->NewStringUTF("Bookmark qualquer");
g_jniEnv->CallObjectMethod(obj, meth1, jAssetName);
g_jniEnv->CallObjectMethod(obj, meth2, 2);
return obj;
};