Bonjour,
Encore une question du boulet qui capte rien au JNI... et pourtant c'est pas faute de chercher !
Bon alors voila, je veux simplement executer des méthodes d'une classe java depuis du C. D'après les exemples trouvés sur internet, çà à pas l'air bien méchant, seul problème, çà marche pô !
Extrait de ma classe java:
Extrait du code natif en C :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 class CLIST_S{ void afficher(){ int size = liste.size(); System.out.println("Taille de la liste = " + size); Iterator<String> it = liste.iterator(); while(it.hasNext()){ System.out.print("'" + it.next() + "' "); } System.out.print("\n"); } }
Et donc, çà compile et çà plante à l'execution -> "EXCEPTION_ACCESS_VIOLATION" et tout le tralala...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 JNIEXPORT void JNICALL Java_Main_native_1methode(JNIEnv * env, jobject obj, jobjectArray l){ jclass cls = (*env)->GetObjectClass(env,obj); jmethodID mid = (*env)->GetMethodID(env,cls, "afficher", "()V"); (*env)->CallVoidMethod(env,obj, mid); }
Je comprends pas, çà ressemble enormément aux exemples du livre sur le jni que j'ai téléchargé sur le site de sun...
Merci d'avance de votre aide.
Partager