2012-09-24 6 views
1

J'ai créé le fichier .so en utilisant android NDK. Dans la classe xxx.java, j'ai ajouté des méthodes natives pour appeler à partir de fichiers c/C++. ces méthodes natives que je fais appel à mes propres méthodes comme par exemple ci-dessous,java.lang.unsatisfiedlinkerror. où ajouter .so fichier en éclipse pour l'application android

static 
    { 
    System.loadLibrary("print"); 
    } 
    public native String print(String pM,int len); 
    public native int openPrint(); 

Les méthodes ci-dessus indigènes appellent dans ma méthode afin que les autres développeurs d'applications Android peut utiliser comme une API.

public static void foo(){ 

     openPrint() 
    } 

Est-ce ainsi?

Pour cette raison, j'ai créé un fichier myprint.Jar. il inclut également le fichier libprint.so.

I ajouté au-dessus jar dans une autre application, il est d'importer la classe de xxx.java mais chaque fois que j'essayé de lancer l'application de son lancer une erreur en disant que

FATAL Exception, 
    java.lang.UnsatisifiedLinkerror.... 

Comment résoudre le problème ci-dessus?

Merci à l'avance

+0

Cocher cette http://stackoverflow.com/questions/4813336/java-lang-unsatisfiedlinkerror – Santosh

Répondre

1

Le fichier .so doit être placé dans le répertoire libs -> armeabi -> xxx.so d'eclipse. puis créer fichier build.properties dans Eclipse et mentionner le chemin du fichier xxx.so en faisant comme celui-ci

open build.properties file. 

    then click on Add Library button. 

    then one edit box will appear write below line in the edit box. 



external.libs.dir=libs 
1

Les libprint.so doit être mis dans le dossier libs, puis chargé à l'aide:

System.loadLibrary("print"); 

Peut être que vous avez java.lang.UnsatisfiedLinkError parce que, le nom de la fonction c ne correspond pas à la nom qualifié complet de votre classe Java.
Je suggère de suivre ce lien: http://mindtherobot.com/blog/452/android-beginners-ndk-setup-step-by-step/

+0

Merci pour ur rply. J'ai ajouté System.loadLibrary dans xxx.java. et créé myprint.jar. Est-il nécessaire d'ajouter dans l'application Android aussi où j'ajoute le fichier .jar ?? – Prasad

+0

http://stackoverflow.com/questions/8434529/how-to-load-a-native-shared-object-in-a-jar-from-an-android-application – Nermeen

Questions connexes