[JNI] problème de création d'un jObjectArray
	
	
		Bonjour,
je développe en C et Java en utilisant JNI (un programme Java appelle des fonctions C), et je souhaite mettre à la disposition du programme C une méthode Java.
La méthode est définie dans ma classe Java (elle prend 2 strings en entrée et génère un string en sortie):
	Code:
	
| 12
 3
 
 | private String formatString(String inputString, String method) {
	return "\"" + inputString + "(" + method + ")\"";
} | 
 Dans mon programme C, je la retrouve comme ça:
	Code:
	
| 12
 3
 4
 
 | if(!(mid = (*env)->GetMethodID(env, cls, "formatString", 
		                       "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;"))) {
		// error
} | 
 La méthode est reconnue et peut être appelée. Si je rajoute, après le GetMethod, quelque chose comme ça:
	Code:
	
jresult = (*env)->CallObjectMethod(env, objet, mid);
 j'optiens bien la chaîne générée par la méthode java.
Mon problème, c'est le passage de paramètres à ma méthode java. Je crée un jobjectArray args, et je le remplis comme ça:
	Code:
	
| 12
 3
 4
 5
 6
 7
 8
 9
 
 | args= (*env)->NewObjectArray(env,
		 		     2,
				     (*env)->FindClass(env, "java/lang/String"),
				     NULL);
 
(*env)->SetObjectArrayElement(env,
		args,0,(*env)->NewStringUTF(env, "mon_inputString"));
(*env)->SetObjectArrayElement(env,
		args,1,(*env)->NewStringUTF(env, "ma_methode")); | 
 
Lorsque j'appelle ma méthode avec les arguments:	
	Code:
	
	jresult = (*env)->CallObjectMethod(env, objet, mid, args);
 je me retrouve avec une erreur lors de l'exécution:
	Code:
	
| 12
 3
 4
 
 | Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
        at java.lang.AbstractStringBuilder.expandCapacity(Unknown Source)
        at java.lang.AbstractStringBuilder.append(Unknown Source)
        at java.lang.StringBuffer.append(Unknown Source) | 
 Ai-je mal créé mon objectArray ?
Merci !