3 votes

Android - Bibliothèque JNA

Bonjour, j'utilise JNA pour pouvoir utiliser une dll externe (je n'ai pas le fichier d'en-tête mais j'ai la documentation donc les signatures des fonctions exposées).

J'ai réussi à utiliser ma dll dans un projet Java comme suit les instructions ici et j'essaie maintenant d'utiliser la même chose sur une application Android.

J'ai importé le jar jna dans mes libs et je l'ai également ajouté dans mon buildpath et j'obtiens une erreur

The library 'jna-3.5.1.jar' contains native libraries that will not run on the device.
The following libraries were found:
com/sun/jna/linux-amd64/libjnidispatch.so
com/sun/jna/darwin/libjnidispatch.jnilib
com/sun/jna/linux-i386/libjnidispatch.so
com/sun/jna/sunos-x86/libjnidispatch.so
com/sun/jna/sunos-amd64/libjnidispatch.so
com/sun/jna/sunos-sparc/libjnidispatch.so
com/sun/jna/sunos-sparcv9/libjnidispatch.so

Des idées ?

0voto

Shark Points 2112

Cela mérite une réponse...

Avez-vous compilé la librairie que vous voulez utiliser pour Android ?

Pourquoi ne pas écrire un wrapper JNI autour de ces librairies natives, et l'invoquer à partir de votre application Android ?

0voto

Brian Points 167

Parcourez votre jna.jar et supprimez les fichiers affichés dans votre message :

com/sun/jna/linux-amd64/libjnidispatch.so
com/sun/jna/darwin/libjnidispatch.jnilib
com/sun/jna/linux-i386/libjnidispatch.so
com/sun/jna/sunos-x86/libjnidispatch.so
com/sun/jna/sunos-amd64/libjnidispatch.so
com/sun/jna/sunos-sparc/libjnidispatch.so
com/sun/jna/sunos-sparcv9/libjnidispatch.so

Il faut alors peut-être redémarrer l'IDE et cela devrait fonctionner.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X