Bonsoir !
J'ai un petit souci avec JNI : J'ai un objet dont les champs sont tous des types primitifs sauf un qui est un objet et je ne parviens pas à accéder à ce "sous-objet".



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
 
 
JNIEXPORT void JNICALL Java_MaClasse_MaMethode(JNIEnv *env, jobject obj, jobject monObjet){
 
jclass class;
jfieldID fieldID;
jclass subclass;
jobject monSousObjet;
int monEntier;
....
 
/* Recuperation de la classe de monObjet */
class = (*env)->GetObjectClass(env,monObjet);
 
/* Recuperation du fieldID du "sous-objet" */
fieldID = (*env)->GetFieldID(env,class,"mySubObject","Ljava/lang/Object ;");
 
/* Recuperation du "sous-objet" proprement dit */
monSousObjet = (*env)->GetObjectField(env,monObjet,fieldID);
 
/* Recuperation de la classe du "sous-objet" pour acceder à ses champs */
subclass = (*env)->GetObjectClass(env,monSousObjet);
 
...
 
/* Recuperation d'un champ de type entier de mon sous-objet */
fieldID = (*env)->GetFieldID(env,subclass,"myInteger","I");
monEntier = (*env)->GetIntegerField(env,monSousObjet,fieldID);

Impossible d'accéder à ce "sous-objet" !!!!! Qu'est-ce qui cloche dans mon code ?
Merci d'avance !