Maison >développement back-end >C++ >Comment appeler correctement les méthodes Java à partir de C sous Android à l'aide de JNI ?
Appel de méthodes Java depuis C sous Android
Dans le contexte de Java Native Interface (JNI) sous Android, il est possible d'invoquer Java méthodes à partir du code C lors de l’exécution d’une méthode native appelée depuis Java. Voici une analyse détaillée d'un extrait de code que vous avez fourni, mettant en évidence le problème et proposant une solution :
Problème :
Votre code natif tente d'appeler la méthode "messageMe" à partir du Classe "the/package/MainActivity" utilisant la fonction "CallObjectMethod". Cependant, le message d'erreur "java.lang.NoSuchMethodError: messageMe" indique que la méthode n'est pas trouvée.
Analyse :
Le problème réside dans la façon dont vous transmettez l'objet à la fonction "CallObjectMethod". Dans votre code, vous transmettez l'objet "jstr", qui est une chaîne Java, au lieu de l'objet "obj", qui est l'instance de la classe MainActivity.
Solution :
Pour appeler des méthodes objet depuis C , vous devez transmettre l'objet lui-même à la fonction "CallObjectMethod". Le code corrigé ci-dessous montre la modification :
<code class="c++">jobject result = env->CallObjectMethod(obj, messageMe, jstr);</code>
Notes supplémentaires :
En résolvant le problème décrit ci-dessus, vous devriez pouvoir appeler avec succès des méthodes Java à partir de C dans votre application Android.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!