ZXing读二维码时com.google.zxing.client.j2se包不存在的问题求助
问题根因
- 这个报错是ZXing接入时的高频踩坑点,和本地Maven仓库损坏、core包引入失败没有关联
- 报错指向的
com.google.zxing.client.j2se包对应的所有类,从来没有被打包进core核心依赖的分发包里 - core包仅包含纯编解码的底层逻辑,如果需要在Java SE环境下处理本地图片、文件流、位图生成这类场景功能,就必须引入单独的javase扩展模块,单靠core包永远会抛出上述编译错误
具体修复操作
- 保留现有3.3.2版本的core依赖不动,补充同版本号的javase扩展依赖,两个依赖版本必须严格对齐,完整可运行的Maven配置如下:
<dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.3.2</version> </dependency> <dependency> <groupId>com.google.zxing</groupId> <artifactId>javase</artifactId> <version>3.3.2</version> </dependency>
- 添加完成后刷新Maven依赖索引,重新触发项目编译,该包不存在的报错会直接消除
注意事项
- 不要跨版本搭配两个依赖,比如用高版本javase搭配低版本core,会触发类方法缺失、版本不兼容的运行时异常
- 如果应用是Android端的扫码功能,不需要引入这个javase扩展包,直接基于core包的API实现安卓侧的相机流、图片解码逻辑即可,javase包仅适用于后端服务、桌面程序这类Java SE环境的二维码处理场景
内容的提问来源于stack exchange,提问作者Tamjid
相关产品推荐
相关产品推荐

