【问题标题】:Multiple dex files define Lcom/google/zxing/BarcodeFormat多个dex文件定义Lcom/google/zxing/BarcodeFormat
【发布时间】:2016-03-16 23:17:14
【问题描述】:

我正在创建一个应用程序,其中一个模块允许扫描二维码,另一个模块生成二维码。

要生成二维码,我正在使用这个库:

    compile 'com.github.kenglxn.QRGen:android:2.1.0'

要扫描二维码,我正在使用这个库:

    compile 'com.dlazaro66.qrcodereaderview:qrcodereaderview:1.0.0'

两个库都在使用 ZXING,这就是我在 Android Studio 中使用这个多重 dex 错误的原因。

请帮忙,以便我可以在我的 gradle 中包含这两个库。我知道可以使用 "exclude" 解决这个问题,但我不知道两个库中的哪个类发生冲突。

【问题讨论】:

  • public class MyApplication extends Application你的项目中这种类型的类
  • @nandkishormewara 我的项目中没有那种类。

标签: android qr-code zxing


【解决方案1】:

对我来说,这是由于我的项目中有重复的依赖项造成的。

原来我在我的项目中通过不同的方式和不同的版本包含了 zxing 依赖项。

其中一个来自使用最新版本的 Facebook SDK,另一个已通过 /libs 目录中的 .jar 文件包含,并且是一个古老的版本。

为了解决这个问题,我删除了 Facebook SDK,找到了旧版本,我没有直接包含 jar,而是将其替换为:

compile 'com.google.zxing:core:3.3.1'

在我的应用程序的build.gradle

在包含 Facebook SDK 之后,清理/重建没有问题。

【讨论】:

    【解决方案2】:

    您需要启用Multidex请检查突出显示的图像部分

    【讨论】:

    • 我这样做得到了这种 multidex 错误错误:任务 ':app:packageAllDebugClassesForMultiDex' 的执行失败。 > java.util.zip.ZipException:重复条目:com/google/zxing/BarcodeFormat.class
    【解决方案3】:

    找到了解决办法。

    我正在使用其他库,它使用相同的核心 ZXing 库将二维码生成到位图中。

    我做了什么:

        com.google.zxing.Writer writer = new QRCodeWriter();
    // String finaldata = Uri.encode(data, "utf-8");
    int width = 250;
    int height = 250;
    BitMatrix bm = writer
            .encode(data, BarcodeFormat.QR_CODE, width, height);
    Bitmap ImageBitmap = Bitmap.createBitmap(width, height,
            Config.ARGB_8888);
    
    for (int i = 0; i < width; i++) {// width
        for (int j = 0; j < height; j++) {// height
            ImageBitmap.setPixel(i, j, bm.get(i, j) ? Color.BLACK
                    : Color.WHITE);
        }
    }
    

    使用 com.google.zxing.writer 生成位图并将其设置为我的 imageview。

    谢谢@pranavjoshi

    【讨论】:

      【解决方案4】:

      您必须从冲突的依赖项之一中删除 Zxing 库,例如以下示例:

        implementation ('com.github.kenglxn.QRGen:android:2.5.0') {exclude group: 'com.google.zxing'}
      

      【讨论】:

        猜你喜欢
        • 2014-05-22
        • 1970-01-01
        • 2016-11-06
        • 1970-01-01
        • 2018-07-01
        • 2018-01-15
        • 2017-08-14
        • 1970-01-01
        相关资源
        最近更新 更多