Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

FATAL EXCEPTION: main java.lang.UnsatisfiedLinkError in Android Studio library

I added FDxSDKProAndroid.jar file in libs folder of my project in android studio. Also added dependency in build.gradle file.

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')
}

Project builds properly without any error but onRuntime I got following error,How to resolve this error?

Error occured in following line,

sgfplib=new JSGFPLib((UsbManager)getSystemService(Context.USB_SERVICE));

Error:

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
like image 871
Ramprasad Avatar asked Dec 04 '13 08:12

Ramprasad


2 Answers

You could just put the .so files into jniLibs folder in src/main. This was introduced in AS 0.7.2 1

As a sample, see this from @CommonsWare, or see this page for official samples (scroll to the bottom of page)

like image 62
Avinash R Avatar answered Oct 19 '22 12:10

Avinash R


Here is my last hack when i was integrating with the same library for finger print device while trying to import .so files into Android Studio 1.5 Error occurred in this line

sgfplib=new JSGFPLib((UsbManager)getSystemService(Context.USB_SERVICE));

Solution was to create a folder with the name armeabi-v7a in src/main/jniLibs so the hierarchy should be as the attached screen shot.

enter image description here

Hope this can help :) with the latest Android Studio 1.5

like image 25
Mohamed Avatar answered Oct 19 '22 12:10

Mohamed