2009-11-29 8 views
2

J'essaie d'utiliser une bibliothèque C native préexistante dans mon projet Android. La bibliothèque se construit très bien avec les outils NDK ...Android NDK: déclarations de fonction Autogenenerate?

Maintenant, ce que j'ai compris, c'est que je ne peux pas simplement appeler dans la bibliothèque, mais ma bibliothèque doit inclure jni.h et ajouter des déclarations de fonctions spécifiques, comme par exemple:

JNIEXPORT jint JNICALL Java_com_MultPkg_Mult_mult(JNIEnv *, jobject, jint, jint); 

mais depuis que je suis en utilisant une bibliothèque existante I qui est aussi utilisé sur d'autres plates-formes que je n » J'aime l'idée de jeter tout le code avec ces définitions qui finiront par envelopper mes vraies fonctions ...

Y a-t-il un moyen de contourner cela? Et si c'est vraiment le seul moyen, existe-t-il un moyen de les générer automatiquement en fonction de mes déclarations/définitions de fonction C existantes?

beaucoup apprécié

Répondre

1

Utilisez l'outil javah qui vient avec votre JDK comme il ne fait pas partie du SDK, ni NDK du Android.

0

Utilisez SWIG pour générer automatiquement le fichier c compatible jni. Il génère également la classe .java afin que votre androïde interagisse avec la classe Java dans laquelle se trouvent toutes les méthodes natives.

Jetez un oeil à ceci: SWIG Android