这仅仅是一篇问题分析哈,提供理解这个问题的思路,并不是解决这个问题的方法。
背景
先说背景,项目中需要一个扫描二维码的功能,网上找了一个比较火的 BGAQRCode-Android,用了一圈感觉还不错。
但是在扫描页面,logcat 总是报 W/System.err: com.google.zxing.NotFoundException,类似下图:
结论
再说结论,对分析不感兴趣的可以看了结论就走了。
如果你是和我用的同样的库,说着说同样的封装的 ZXing
的库,而且使用的是 动态扫码
,那么这个问题你可以不用关心。
如果你使用的是从图片库选择图片,然后识别,结果报了这样一个错,那八成是图片有问题或者图片的处理有问题,网上一搜,大把的。
分析
简单来说,这个问题就是 ZXing
没有识别出二维码、条码。
那扫描的时候为什么一直在报这个错呢?
因为扫描的原理就是,将视频输入的数据流,每隔一段时间(很短的一段时间),取一帧,作为图片拿出来,让 ZXing
识别。识别到了,就返回结果,没识别到,就会报 NotFoundException
。
我没有研究 ZXing
的底层原理哈,但大的方向一定是这样。
所以,如果有朋友在使用中,发现了标题的这个警告,而刚好这个警告又是出现在动态扫描页面,那忽略就好了。
希望可以给为这个问题抓狂的朋友一点安慰。