解决zxing “Could not find class 'com.goole.zxing.Result”和“Multiple dex files define”问题

    刚学android应用程序开发,就遇到扫描二维码功能,比较棘手。goole了下,有个不错的开源库zxing,包含了二维码扫描功能。具体怎么使用,csdn上的博客http://blog.csdn.net/xiaanming/article/details/10163203《Android 基于google Zxing实现二维码、条形码扫描,仿微信二维码扫描效果》讲的比较详细,就不赘述了。这里主要分享中间过程遇到的两个问题以及相应的解决方案。
    一是运行时遇到“Could not find class 'com.goole.zxing.Result'”错误。解决办法如下:
1、在工程根目录下新建libs文件夹,然后将core.jar粘贴到libs下(我想这一步大家都是做了的);
2、build path->Libraries->点击Add JARs...(注意不是点击Add External JARs...)->选择你所在的工程->选择第一步新建的libs文件夹->选中第一步我们粘贴的core.jar->点击Ok;
3、选中libs文件夹->右击,然后选择Build Path->use as source folder。

    紧接着第二个问题来了,错误信息是“Unable to execute dex: Multiple dex files define Lcom/google/zxing/BarcodeFormat;”。很多中文blog里都包含解决方法,长篇大论说了一大推,但都不起作用。后来在stackoverflow上找到了解决方法,链接地址为:http://stackoverflow.com/questions/7870265/unable-to-execute-dex-multiple-dex-files-define-lcom-myapp-rarray。答案目前已经有156个赞同了。

    我使用的是链接上的这种方法:In Order and Export tab I did not have any jar library there, so I have unchecked Android Private Libraries item. Now my project is running. 翻译成中文等同Build Path->Order and Export->然后将Android Private Libraries前面那个钩去掉->点击OK。

     重新运行,程序工作正常。不过还是遇到了网上同学的问题,扫描的时候要很远才能扫描到二维码,而且感觉扫描不敏感,扫描半天才成功一次。后续还得花时间把这些问题解决。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
`com.google.zxing.NotFoundException` 是一个异常类,表示在使用 ZXing 库进行二维码识别时未能找到有效的二维码。通常出现这种情况是因为图片中不存在二维码、二维码不清晰或者损坏等原因。 要解决这个问题,可以尝试以下几种方法: 1. 确保图片中存在二维码:使用图片编辑软件查看图片中是否存在二维码,或者使用其他二维码识别工具验证图片中是否存在二维码。 2. 确保二维码清晰:使用高清晰度的图片进行识别,或者尝试调整图片的对比度和亮度。 3. 使用多个二维码识别算法:ZXing 库提供了多个二维码识别算法,可以尝试使用不同的算法进行识别。 以下是一个使用 ZXing 库进行二维码识别的示例代码: ```java import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import com.google.zxing.BinaryBitmap; import com.google.zxing.MultiFormatReader; import com.google.zxing.NotFoundException; import com.google.zxing.Result; import com.google.zxing.client.j2se.BufferedImageLuminanceSource; import com.google.zxing.common.HybridBinarizer; public class QRCodeReader { public static void main(String[] args) { try { File file = new File("qrcode.png"); BufferedImage image = ImageIO.read(file); BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(new BufferedImageLuminanceSource(image))); Result result = new MultiFormatReader().decode(bitmap); System.out.println(result.getText()); } catch (IOException e) { e.printStackTrace(); } catch (NotFoundException e) { e.printStackTrace(); } } } ``` 在上面的示例代码中,我们使用 `MultiFormatReader` 类进行二维码识别。如果识别失败,则会抛出 `NotFoundException` 异常,可以根据异常信息进行排查。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值