繁体   English   中英

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

[英]ZBar - QR Code Scanner, crashing in Android Studio

我从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') } 
  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); 

因此实现与示例中的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

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

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

/lib/armeabi/*.so

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

lib/
---/armeabi
------/libiconv.so
------/libzbarjni.so

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

解决方案太复杂了。 我所做的得到它的工作,是使用从示例解决方案已编译的jar文件这个例子 将它们复制到lib文件夹,并确保也将它们添加到gradle文件中。 但是,你的行compile fileTree(dir: 'libs', include: '*.jar')应该可以解决问题。

将目录armeabiarmeabi-v7ax86放在根项目文件夹下名为native-libs的子目录中。 然后将这些设置添加到build.gradle文件中:

android {
    // other settings
    sourceSets {
            main {
                jni.srcDirs=[] //to suppress makefiles autogeneration
                jniLibs.srcDirs=['native-libs'] //native *.so in armeabi x86 and mips to include
            }
        }
}

生成的.apk现在应该包含本机库。

您最好检查app.gradle文件中是否有最新版本的ZBar依赖项。 获取最新版本对我有用并解决了所有问题,如找不到libzbarjni.so和libiconv.so

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM