IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entrée/Sortie Java Discussion :

JNI et code natif


Sujet :

Entrée/Sortie Java

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1
    Points : 1
    Points
    1
    Par défaut JNI et code natif
    Bonjour à tous,

    J'essaie d'exécuter sous Android 2.2 via le NDK une fonction écrite en C. Pour l'instant, ma fonction est la plus simple qui soit, mais j'obtiens systématiquement à l'exécution une erreur du type "UnsatisfiedLinkError". Quelqes précision sur mon code :

    fichier integrale.c (rien de plus simple pour l'instant):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    #include <jni.h>
     
    void PixelRVBToGreyC()
    {		
     
    	float coefRed=0.3F;
     
    }
    LA compilation via le NDK se passe bien, et j'obtiens le fichier libintegrale.so.

    Ce fichier est inclue dans ma classe java avec le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        static {
            System.loadLibrary("integrale");
        }
    Puis la fonction est déclarée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public native void PixelRVBToGreyC();
    J'appelle ensuite cette fonction dans le reste de mon code, mais à l'exécution j'obtiens l'erreur suivante :
    java.lang.UnsatisfiedLinkError: PixelRVBToGreyC

    Auparavant, j'ai également le message d'avertissement suivant :
    No implementation found for native Ldev/packProto/ImageIntegrale;.PixelRVBToGreyC ()I.

    Quelqu'un saurait-il m'éclairer ? Je vous remercie d'avance.

  2. #2
    Membre du Club Avatar de lord anubis
    Inscrit en
    Février 2006
    Messages
    114
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations forums :
    Inscription : Février 2006
    Messages : 114
    Points : 59
    Points
    59
    Par défaut
    Je me permets un petit up, parce que j'ai le même problème.
    Et encore moi j'essaie avec le code fournit pas google dans son package ndk. Je travaille sur le fichier hello-jni.cpp.

    Et lorsque j'appel la fonction loadLibrary, j'ai un unsatisfiedLinkError. J'ai beau regardé sur internet, je ne vois rien qui puisse m'aider.

    @+

  3. #3
    Membre du Club Avatar de lord anubis
    Inscrit en
    Février 2006
    Messages
    114
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations forums :
    Inscription : Février 2006
    Messages : 114
    Points : 59
    Points
    59
    Par défaut
    Salut, je ne sais pas si tu codes sous netbeans ou eclipse, mais moi je codais sous netbeans et l'erreur venait de là. Netbeans n'ajoute pas les librairies créées dans le projet, d'où l'erreur. Pour qu'il les prenne en compte, il faut modifier le fichier de projet build.xml, mais je ne pas comment faire. Du coup je suis passé à eclipse.

    ++

Discussions similaires

  1. [JNI] appel d'une méthode java depuis le code natif
    Par myryad dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 19/05/2009, 11h23
  2. class Stream pour code natif
    Par julioMEL dans le forum C++/CLI
    Réponses: 1
    Dernier message: 03/05/2007, 13h24
  3. Réponses: 3
    Dernier message: 19/07/2006, 21h54
  4. [JavaComm]Pb avec l'execution d'un code natif sous linux
    Par seb31 dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 02/06/2004, 14h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo