安卓采用ZXING解析二维码图片时报错,求解

qq_35821313 2016-11-02 05:08:06
其实个人感觉问题不在于ZXING、也不在于二维码,而在于解析图片。

以下为LogCat截图。


报错的代码为:


之前把ZXING的JAR包添加到libs下并参考这篇博文:Zxing和QR CODE 生成与解析二维码实例(普通篇),写了如上的解析二维码的方法,但是发现ImageIO类和BufferedImage类并不是ZXING的JAR包中的类,百度了一下向Build Path中添加了JRE system library后终于编译器不再报错了,然而一运行就LogCat就报图1的错了。搜了半天没解决办法,只能来求助了。。
...全文
538 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
EmMper 2016-11-03
  • 打赏
  • 举报
回复
OK,已经解决了。解决办法是先通过Bitmap imageBitmap = BitmapFactory.decodeFile(path);方法将固定路径下的文件转换为bitmap对象,然后可以采用楼上的方法,也可以采用这个贴子二维码之zxing二维码解析图片资源中的BitmapLuminanceSource类来解决。感谢楼上,感谢大家
EmMper 2016-11-03
  • 打赏
  • 举报
回复
引用 2 楼 ink_s 的回复:
解析的时候调用就是了 /** * 解析 */ public void decodeQRCode() { Bitmap bitmap = ((BitmapDrawable)pic.getDrawable()).getBitmap(); decode(bitmap, "解析二维码失败"); }
我大概看了你的方法,我现在这个方法是想要从一个固定或者可以选择的路径中获得一个File对象,然后把File转换为BufferedImage,然后转换成可解析的对象进行二维码解析。而你的方法是直接将一个bitmap图片对象进行解析。我的问题恰好就出在把File解析为BufferedImage的过程,所以感觉还是没法解决我的问题。。不过还是感谢你
EmMper 2016-11-03
  • 打赏
  • 举报
回复
引用 1 楼 ink_s 的回复:
我用的这个方法 /** * 解析二维码,可以解析二维码、带logo二维码、条形码 * @param bitmap * @param err */ private void decode(Bitmap bitmap, final String err) { QRCodeDecoder.decodeQRCode(bitmap, new QRCodeDecoder.Delegate() { @Override public void onDecodeQRCodeSuccess(String result) { Toast.makeText(ReadActivity.this, result, Toast.LENGTH_SHORT).show(); text.setText(result); } @Override public void onDecodeQRCodeFailure() { Toast.makeText(ReadActivity.this, err, Toast.LENGTH_SHORT).show(); } }); }
谢谢了,我就是楼主。 我之前搜到的很多关于ZXING解码的例子,基本上都是我写的那种方式,所以我觉得不应该出错啊,现在出错了,就想解决。 不过你的这个方法我测一下,好用的话我就拿去用啦。
ink_s 2016-11-02
  • 打赏
  • 举报
回复
解析的时候调用就是了 /** * 解析 */ public void decodeQRCode() { Bitmap bitmap = ((BitmapDrawable)pic.getDrawable()).getBitmap(); decode(bitmap, "解析二维码失败"); }
ink_s 2016-11-02
  • 打赏
  • 举报
回复
我用的这个方法 /** * 解析二维码,可以解析二维码、带logo二维码、条形码 * @param bitmap * @param err */ private void decode(Bitmap bitmap, final String err) { QRCodeDecoder.decodeQRCode(bitmap, new QRCodeDecoder.Delegate() { @Override public void onDecodeQRCodeSuccess(String result) { Toast.makeText(ReadActivity.this, result, Toast.LENGTH_SHORT).show(); text.setText(result); } @Override public void onDecodeQRCodeFailure() { Toast.makeText(ReadActivity.this, err, Toast.LENGTH_SHORT).show(); } }); }

80,472

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧