我有一个程序需要返回用户定义结构的数组。我已经构建了单独的结构,我可以立即从结构中提取数据。但是当我定义jobjectArray数组并执行用户定义数据类型的SetArrayElement,然后将其返回给java调用代码时,java表示该数组为null。 SetArrayElement不会抛出错误,但它没有返回值来指示元素的添加是否有效。 GetArraySize返回我分配的jobjectArray的长度,而不是我添加到数组中的元素数。
这是代码的摘录:
cipherText = (*env)->NewObjectArray(env,
2,
myObjectArrayClass,
tuple);
if (cipherText == NULL)
printf("NO NO NO cipherText array is NULL\n");
printf("add zeroth element to cipherText\n");
(*env)->SetObjectArrayElement(env,
cipherText,
0,
(jobject)tuple);
printf("add first element to cipherText\n");
(*env)->SetObjectArrayElement(env,
cipherText,
1,
(jobject)tuple);