jobjectArray ret;
int i;
char *data = malloc(3 * sizeof(char *));
if(data != NULL) {
data[0] = "11";
data[1] = "22";
data[2] = "33";
}
data = realloc(data, 4 * sizeof(char *));
if(data != NULL) {
data[3] = "44";
}
jsize len=4;
ret= (jobjectArray)(*env)->NewObjectArray(env, len,(*env)->FindClass(env, "java/lang/String"),(*env)->NewStringUTF(env, ""));
LOGE("startxx");
jstring str;
for(i=0;i<len;i++) {
str = (*env)->NewStringUTF(env, data[i] );
(*env)->SetObjectArrayElement(env, ret, i, str);
}
LOGE("startxxx");
free(data);
return(ret);
I d like to make an arraylist in c, and then from it, create a java jni array, How can I return the correct "11","22","33","44" array from this code?
warnings:
data[0] = "11";: warning: assignment makes integer from pointer without a cast
str = (*env)->NewStringUTF(env, data[i] );: warning: passing argument 2 of '(*env)->NewStringUTF' makes pointer from integer without a cast
data is declared incorrectly. It should be char** instead of char*.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With