2011-12-02 36 views
3
 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喜歡讓C中的數組列表,然後從它,創建一個Java JNI陣列,我怎樣才能返回正確的 「11」, 「22」, 「33」,」 44「陣列從這個代碼?C和JNI數組列表

警告:

數據[0] = 「11」 ;:警告:賦值時將指針整數,未作鑄造

STR =(* ENV) - > NewStringUTF(ENV ,data [i]);:警告:傳遞'(* env) - > NewStringUTF'的參數2會使得整型指針無法投射

+0

你想返回一個字符數組從C到Java? M我對不對? – user370305

+0

我想返回一個字符串數組從C到Java – lacas

+0

而我的下面的答案是從C到Java返回字符數組.. – user370305

回答

2

數據聲明不正確。它應該是char **而不是char *。