2011-12-21 3 views
0

J'ai le code existant en c et C++. J'ai ajouté ces fichiers c et les fichiers cpp dans le fichier Android.mk. Et j'ai réussi à créer les fichiers .so nommés itv.so dans mon application. Mais maintenant, quand je suis en train de lancer l'application Android Il affiche l'erreur comme ...java.lang.ExceptionInInitializerError Causée par: java.lang.UnsatisfiedLinkError: Bibliothèque introuvable

12-20 13:26:31.362: E/AndroidRuntime(716): FATAL EXCEPTION: main 
12-20 13:26:31.362: E/AndroidRuntime(716): java.lang.ExceptionInInitializerError 
12-20 13:26:31.362: E/AndroidRuntime(716): at com.example.Internet_TV12.onCreate(Internet_TV12.java:38) 
12-20 13:26:31.362: E/AndroidRuntime(716): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
12-20 13:26:31.362: E/AndroidRuntime(716): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 
12-20 13:26:31.362: E/AndroidRuntime(716): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 
12-20 13:26:31.362: E/AndroidRuntime(716): at android.app.ActivityThread.access$2300(ActivityThread.java:125) 
12-20 13:26:31.362: E/AndroidRuntime(716): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 
12-20 13:26:31.362: E/AndroidRuntime(716): at android.os.Handler.dispatchMessage(Handler.java:99) 
12-20 13:26:31.362: E/AndroidRuntime(716): at android.os.Looper.loop(Looper.java:123) 
12-20 13:26:31.362: E/AndroidRuntime(716): at android.app.ActivityThread.main(ActivityThread.java:4627) 
12-20 13:26:31.362: E/AndroidRuntime(716): at java.lang.reflect.Method.invokeNative(Native Method) 
12-20 13:26:31.362: E/AndroidRuntime(716): at java.lang.reflect.Method.invoke(Method.java:521) 
12-20 13:26:31.362: E/AndroidRuntime(716): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
12-20 13:26:31.362: E/AndroidRuntime(716): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
12-20 13:26:31.362: E/AndroidRuntime(716): at dalvik.system.NativeStart.main(Native Method) 
12-20 13:26:31.362: E/AndroidRuntime(716): Caused by: java.lang.UnsatisfiedLinkError: Library itv not found 
12-20 13:26:31.362: E/AndroidRuntime(716): at java.lang.Runtime.loadLibrary(Runtime.java:461) 
12-20 13:26:31.362: E/AndroidRuntime(716): at java.lang.System.loadLibrary(System.java:557) 
12-20 13:26:31.362: E/AndroidRuntime(716): at com.example.Display.<clinit>(Display.java:69) 
12-20 13:26:31.362: E/AndroidRuntime(716): ... 14 more 

Je ne sais pas pourquoi cette erreur vient. J'ai vu le dossier de lib qui a le dossier de libitv.so. J'ai aussi essayé

static { 
     try { 
      System.loadLibrary("itv"); 
      // System.load("/data/data/com/example/lib/itv.so"); 
     } 
     catch (UnsatisfiedLinkError use) { 
       Log.e("JNI", "WARNING: Could not load itv.so"); 
      } 
     } 

Mais obtenir la même erreur. Quelqu'un peut-il me dire s'il vous plaît la solution pour cette erreur. Merci d'avance.

+0

vérifier cet article http://stackoverflow.com/a/5367617/760489 – Pratik

Répondre

7

La bibliothèque sera reconnue si son nom est libitv.so et placé dans le répertoire libs \ armeabi dans le répertoire de votre application, avant la construction du .apk.

Parfois, lorsque la bibliothèque n'est pas copiée complètement (copie partielle), en raison de certains problèmes du système, la bibliothèque partielle ne sera pas non plus reconnue.

+0

Merci pour la réponse ... C'est peut-être la raison ... Mais comment puis-je résoudre ce problème ... Pouvez-vous s'il vous plaît dites-moi? – geeta

+0

Pour être sûr, pouvez-vous vérifier la taille des bibliothèques dans le lieu que vous avez construit et le chemin que vous avez copié? – Deepak

+0

+1 pour une indication correcte – Sameer

2

Essayez de nommer le fichier réel libitv.so (lib + nom + bibliothèque .so) et le mettre dans un dossier armeabi de votre répertoire libs

+1

Merci pour votre réponse. J'ai essayé par nom de fichier réel libitv.so ... Mais même erreur que je reçois ... – geeta

+0

Êtes-vous sur un Mac peut-être? – zienkikk

+1

Non, je suis sur Windows ... – geeta

Questions connexes