我无法从C ++ jni回调中返回用户自定义的类返回
代码段如下:
// Kotlin类
input
// com.example.MainActivity
data class class_record(var id:String?,var class_name:String?,var class_type)
// c ++ jni代码
外部“ C” JNIEXPORT作业JNICALL Java_com_example_MainActivity_Cls(JNIEnv * env,jobject实例,jstring id, ){
public native Object Cls(String id);
Vector vec_ classrecord=new Vector();
vec_classrecord=(Vector)Cls("1234");
答案 0 :(得分:0)
env->CallVoidMethod(java_vector_object, java_vector_add, cls_object);
在Kotlin环境下,最好在ArrayList中表达jni c ++回调,而不是在返回的arraylist固定大小不可改变的情况下,向量随片段增长几乎两倍的向量。
java_util_class = env->FindClass("java/util/ArrayList");
jmethodID java_add= env->GetMethodID(java_util_class, "add","(Ljava/lang/Object;)Z");
env->CallBooleanMethod(java_object, java_add, cls_object);