我正在尝试导入opencv和zbar,并在同一个项目中使用它们,我导入了opencv noramlly,它工作了,我将.so文件复制到jniLibs,然后我打开了相机,它工作正常,然后我导入了zbar通过将 libs 中的 .jar 文件和 .so 文件从每个文件夹复制到具有 opencv .so 文件的同一文件夹,例如,我将 2 个 zbar .so 文件从 x86 复制到 jniLibs x86 以及 opencv 的其他 .so 这是错误我得到了
10-25 18:54:09.336 1447-1447/com.example.amgad.medikar E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.ExceptionInInitializerError
at com.example.amgad.medikar.MainActivity.onCreate(MainActivity.java:71)
at android.app.Activity.performCreate(Activity.java:4465)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
at android.app.ActivityThread.access$600(ActivityThread.java:123)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4424)
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:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.UnsatisfiedLinkError: Cannot load library: link_image[1936]: 785 could not load needed library 'libiconv.so' for 'libzbarjni.so' (load_library[1091]: Library 'libiconv.so' not found)
at java.lang.Runtime.loadLibrary(Runtime.java:370)
at java.lang.System.loadLibrary(System.java:535)
at net.sourceforge.zbar.ImageScanner.<clinit>(Unknown Source)
at com.example.amgad.medikar.MainActivity.onCreate(MainActivity.java:71)
那一行是
scanner = new ImageScanner();
所以我尝试手动加载库
static{
System.loadLibrary("libiconv");
System.loadLibrary("libzbarjni");
}
然后我收到此错误
10-25 19:15:33.295 1495-1495/com.example.amgad.medikar E/AndroidRuntime﹕ 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:1023)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1871)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
at android.app.ActivityThread.access$600(ActivityThread.java:123)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4424)
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:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.UnsatisfiedLinkError: Couldn't load libiconv: findLibrary returned null
最佳答案
用途:
static {
System.loadLibrary( "iconv" );
}
有关详细信息,请查看 ZBarAndroidSDK-0.2 中的示例包。
关于android - android studio 785中的zbar无法加载 'libiconv.so'所需的库 'libzbarjni.so',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26565077/