2

This problem occurs in pre-lollipop devices only. For higher versions it works as expected. Below is the full log:

FATAL EXCEPTION: main
     java.lang.ExceptionInInitializerError
     at java.lang.Class.newInstanceImpl(Native Method)
     at java.lang.Class.newInstance(Class.java:1319)
     at android.app.Instrumentation.newActivity(Instrumentation.java:1053)
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1974)
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
     at android.app.ActivityThread.access$600(ActivityThread.java:130)
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
     at android.os.Handler.dispatchMessage(Handler.java:99)
     at android.os.Looper.loop(Looper.java:137)
     at android.app.ActivityThread.main(ActivityThread.java:4745)
     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:786)
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
     at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.UnsatisfiedLinkError: Cannot load library: find_library[1201]:  1192 'libzbarjni.so' failed to load previously
     at java.lang.Runtime.loadLibrary(Runtime.java:370)
     at java.lang.System.loadLibrary(System.java:535)
     at com.dm.zbar.android.scanner.ZBarScannerActivity.<clinit>(ZBarScannerActivity.java:38)
     at java.lang.Class.newInstanceImpl(Native Method) 
     at java.lang.Class.newInstance(Class.java:1319) 
     at android.app.Instrumentation.newActivity(Instrumentation.java:1053) 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1974) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) 
     at android.app.ActivityThread.access$600(ActivityThread.java:130) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195) 
     at android.os.Handler.dispatchMessage(Handler.java:99) 
     at android.os.Looper.loop(Looper.java:137) 
     at android.app.ActivityThread.main(ActivityThread.java:4745) 
     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:786) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
     at dalvik.system.NativeStart.main(Native Method) 

Here is how I tried loading the libraries (Works fine on higher versions):

 static {

    System.loadLibrary("iconv");

}

I also read somewhere that you might have to load dependent libraries first. SO I also tried this:

static {

    System.loadLibrary("zbarjni");
    System.loadLibrary("iconv");

}

I still get the same error.

libiconv.so and libzbarjni.so are placed in all three folders (armeabi,armeabi-v7a and x86) under jnilibs.

Again, this works fine with devices running with lollipop and above. Is there a different procedure or folder structure I need to follow for older devices?

PEHLAJ
  • 9,980
  • 9
  • 41
  • 53

0 Answers0