Bonjour à tous,
tout est dans le titre : "JNI et les tableaux de Strings"
Pour situer mon p'tit problème:
je veux "tout simplement" passer un tbl de string à une méthode native qui doit m'en retourner une à son tour. je suis clair ?
bon, j'ai fais la moitié du boulot, le passage en argument fonctionne ! (c'est les "printf"...)
Par contre je bloques complètement pour renvoyer le nouveau tableau...
voici le code de ma méthode native (en C) :
Avec le code "dans cet état", çà compile sans problème, mais quand je lance mon appli java :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 #include <jni.h> #include "Main.h" #include <stdlib.h> JNIEXPORT jobjectArray JNICALL Java_Main_native_1methode(JNIEnv * env, jobject obj, jobjectArray l){ int size = (*env)->GetArrayLength(env,l); int i; char* chaine; jobject obj_temp; for(i=0;i<size;i++){ obj_temp = (*env)->GetObjectArrayElement(env,l,i); chaine = (jstring) (*env)->GetStringUTFChars(env,obj_temp,0); printf("%s\n",chaine); } //(*env)->ReleaseStringUTFChars(env,chaine,obj_temp); char* c1 = "toto"; char* c2 = "titi"; //jobject jo; //jstring c1 = (*env)->NewStringUTF(env,"titi"); //jstring c2 = (*env)->NewStringUTF(env,"toto"); jobjectArray res;// = (jobjectArray)(*env)->NewObjectArray(env,2,jo,NULL); (*env)->SetObjectArrayElement(env,res,0,(jobject)c1); (*env)->SetObjectArrayElement(env,res,1,(jobject)c2); return res; }
Les lignes de codes en commentaires sont des essais fais "à taton" pour tenter de faire avancer le schmilblick...
Bon ben voila, j'espère que j'ai été assez clair, et surtout qu'un pro du JNI passe par là...
Merci d'avance !
Partager