EXCEPTION FATALE: principaux java.lang.UnsatisfiedLinkError dans Android Studio de la bibliothèque
J'ai ajouté FDxSDKProAndroid.jar fichier dans le dossier libs de mon projet dans android studio. Aussi ajoute la dépendance dans la construction.gradle fichier.
dependencies {
compile 'com.android.support:support-v4:18.0.0'
compile 'com.google.android.gms:play-services:4.0.30'
compile files('libs/FDxSDKProAndroid.jar')
}
Projet est construit correctement, sans erreur, mais onRuntime j'ai eu d'erreur suivant,Comment résoudre cette erreur?
Erreur s'est produite dans la ligne suivante,
sgfplib=new JSGFPLib((UsbManager)getSystemService(Context.USB_SERVICE));
Erreur:
12-04 13:35:13.022 12345-12345/? E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.UnsatisfiedLinkError: Couldn't load jnisgfplib from loader dalvik.system.PathClassLoader[DexPathList[dexElements=[zip file "/data/app/com.mycompany.mytrack-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.mycompany.mytrack-1, /vendor/lib, /system/lib]]]: findLibrary returned null
at java.lang.Runtime.loadLibrary(Runtime.java:359)
at java.lang.System.loadLibrary(System.java:514)
at SecuGen.FDxSDKPro.JSGFPLib.<clinit>(JSGFPLib.java:150)
at com.mycompany.mytrack.FingerPrintActivity.onCreate(FingerPrintActivity.java:105)
at android.app.Activity.performCreate(Activity.java:5122)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1081)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2270)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2358)
at android.app.ActivityThread.access$600(ActivityThread.java:156)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1340)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:153)
at android.app.ActivityThread.main(ActivityThread.java:5297)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
at dalvik.system.NativeStart.main(Native Method)
12-04 13:35:13.033 511-529/? E/AppErrorDialog﹕ Failed to get ILowStorageHandle instance
- Cette solution m'a beaucoup aidé stackoverflow.com/questions/18556114/...
Vous devez vous connecter pour publier un commentaire.
On dirait qu'il essaie de charger une bibliothèque native, et il n'y a pas de soutien dans Android Gradle pour le code natif encore. Vérifiez la documentation de votre bibliothèque pour confirmer; j'ai essayé de regarder, mais il semble que c'est une bibliothèque commerciale sans publiquement accessible docs.
Vous pourriez mettre juste le
.so
fichiers dansjniLibs
dossier danssrc/main
. Ceci a été introduit COMME 0.7.2 1Comme un exemple, voir cette de @CommonsWare, ou voir ce page pour prélever des échantillons officiels (faites défiler vers le bas de la page)
Voici ma dernière bidouille quand j'étais à l'intégration avec la même bibliothèque pour doigt de périphériques d'impression, tout en essayant d'importer .donc les fichiers dans Android Studio 1.5
Erreur s'est produite dans cette ligne
Solution était de créer un dossier avec le nom armeabi-v7a dans src/main/jniLibs de sorte que la hiérarchie doit être joint en capture d'écran.
J'espère que cela peut aider 🙂 avec le dernier Android Studio 1.5
Il y a un moyen .. mais c'est un simple hack.
U peut se lier armeabi dossier à l'intérieur de laquelle il est XXXX.donc les fichiers.
ce sont les natifs de codes et que @Scott Barta a dit il n'y a pas de soutien dans Android Gradle pour le code natif.
Donc permet de l'enrouler comme normales, nos fichiers jar..
Étape 1: créez un dossier et nommez-le 'lib'
Étape 2: a pris le armeabi>xxxx.donc les fichiers dans le dossier lib.
Setp 3: maintenant, zip le fichier lib et le nom du fichier zippé en tant que XXXXX.zip.
Maintenant la structure du projet seront XXXX.zip-lib-armeabi-xxxx.donc
Étape 4: Copiez le fichier zip de dossier Libs de android studio.
Étape 5: Renommer le xxxx.zip pour xxxx.jar
Étape 6: coller le code ci-dessous dans la dépendance de gradle.
dépendances {
compiler fileTree(dir: 'libs', comprennent: '*.jar')
}
Désormais Synchroniser gradle, puis sur exécuter.
Remarque: Cette armeabi ne fonctionne que si le cpu de l'émulateur est armeabi.
Pour intel x86, vous pouvez avoir besoin de créer 'x86' dossier zip à l'intérieur et collez correspondant .donc le fichier dans ce dossier.
Cela a fonctionné pour moi. essayer 🙂
Heureux de codage..