我正在创建一个应用程序,其中一个模块允许扫描Qrcode,另一个模块生成QRcode。
要生成QRcode,我正在使用此库:
compile 'com.github.kenglxn.QRGen:android:2.1.0'
要扫描QR码,我正在使用此库:
compile 'com.dlazaro66.qrcodereaderview:qrcodereaderview:1.0.0'
这两个库都在使用ZXING,这就是我在Android Studio中使用这个多重dex错误的原因。
请帮忙,以便我可以在我的gradle中包含这两个库。我知道可以使用"排除" ,但我不知道两个图书馆的哪个班级发生冲突。
答案 0 :(得分:4)
对我来说,这是因为我的项目中存在重复的依赖项。
原来我在项目中通过不同的方式和不同的版本包含了zxing依赖。
其中一个来自使用最新版本的Facebook SDK,另一个已经通过.jar
目录中的/libs
文件包含在内,并且是一个古老的版本。
要解决此问题,我删除了Facebook SDK,找到旧版本,而不是直接包含jar,我将其替换为:
compile 'com.google.zxing:core:3.3.1'
在我的应用build.gradle
。
之后包括Facebook SDK,清理/重建没有问题。
答案 1 :(得分:2)
答案 2 :(得分:2)
找到了解决方案。
我正在使用其他库,它使用相同的核心ZXing库生成QRcode到位图。
我做了什么:
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
答案 3 :(得分:1)
您必须从冲突的依赖项之一中删除Zxing库,例如以下示例:
implementation ('com.github.kenglxn.QRGen:android:2.5.0') {exclude group: 'com.google.zxing'}