ZBar - QR码扫描仪,在Android Studio中崩溃

F1s*_*her 9 android qr-code zbar-sdk zbar

我从git最新的zBar QR Code Scanner(SDK 0.2)下载了.我试图在我的应用程序中实现它.我在Android Studio上工作.

我做了什么:

  1. 我已将zBar.jar复制到我的Project的libs文件夹中.
  2. 我通过压缩它们并将它们的格式更改为*.jar,从"amerabi","amerabi-v7a","x86"创建了*.jar文件.
  3. 我已将amerabi.jar,amerabi-v7a.jar和x86.jar复制到我项目的libs文件夹中.
  4. 无需更改gradle中的任何内容,因为它已配置为从libs项目导入每个jar文件.见下文:

    dependencies {
        compile 'com.android.support:support-v4:18.0.+'
        compile 'com.crashlytics.android:crashlytics:1.+'
    
        compile fileTree(dir: 'libs', include: '*.jar')
    
        compile project(':FacebookSDK')
        compile project(':actionbarsherlock')
        compile project(':Aviary-SDK')
    }
    
    Run Code Online (Sandbox Code Playgroud)
  5. 可以看到每个类形式的zBar lib,所以我已经配置了所有内容.我运行我的ScannerActivity并在onCreate中我得到错误:

    scanner = new ImageScanner();  // this line shows an error
    scanner.setConfig(0, Config.X_DENSITY, 3);
    scanner.setConfig(0, Config.Y_DENSITY, 3);
    
    Run Code Online (Sandbox Code Playgroud)

因此实现与示例中的1:1相同.

我的错误日志:

java.lang.UnsatisfiedLinkError: Couldn't load zbarjni from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/pl.toptof.android.debug-2.apk"],nativeLibraryDirectories=[/data/app-lib/pl.toptof.android.debug-2, /vendor/lib, /system/lib]]]: findLibrary returned null
Run Code Online (Sandbox Code Playgroud)

请帮我解决这个问题.我不知道为什么我的Android Studio可以看到lib,但不能像在示例中那样使用它.

fro*_*mcs 13

我想,你在罐子结构中犯了错误.如果你想从*.so libs制作jar包你应该使用那种结构:

/lib/armeabi/*.so

它是您的库的目录结构示例:

lib/
---/armeabi
------/libiconv.so
------/libzbarjni.so
Run Code Online (Sandbox Code Playgroud)

当然,您应该将最终包从lib.zip重命名为armeabi.jar.在您的情况下,您应该为armeabi-v7a和x86重复此过程.

  • 我会,因为我有同样的问题,他给我正确的答案.因此,如果你使用Android studio然后创建2个文件夹,首先一个是"lib".在lib里面创建"armeabi"文件夹.在armeabi文件夹里面放了.so文件(libiconv.so和libzbarjni.so).然后从lib文件夹中进行存档...例如lib.zip.之后,您将不得不将其重命名为armeabi.jar.最后一步是在libs中复制你的jar并编译成gradle. (6认同)