java - 没有这样的字段错误: MARGIN using ZXing library

标签 java qr-code zxing

我正在使用 ZXing 库生成 QR 码,并且我尝试通过以下方式将 MARGIN 属性设置为 1:

Map<EncodeHintType, Object> hintMap = new EnumMap<EncodeHintType, Object>(EncodeHintType.class);
hintMap.put(EncodeHintType.CHARACTER_SET, "UTF-8");

hintMap.put(EncodeHintType.MARGIN, 1); // java.lang.NoSuchFieldError: MARGIN
hintMap.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.Q);

QRCodeWriter qrCodeWriter = new QRCodeWriter();
BitMatrix byteMatrix = qrCodeWriter.encode(contents, BarcodeFormat.QR_CODE, 100, 100, hintMap);

但是我收到了java.lang.NoSuchFieldError: MARGIN。我使用的是2.3.0版本:

    <dependency>
        <groupId>com.google.zxing</groupId>
        <artifactId>core</artifactId>
        <version>2.3.0</version>
    </dependency>

我还用 Eclipse 检查了 EncodeHintType.class,MARGIN 属性就在那里!我不明白发生了什么。

任何帮助将不胜感激,提前致谢!

最佳答案

灵感来自this answer ,我发现我在 Tomcat 服务器上安装了该库的两个不同版本:core-2.0core-2.3.0。我的代码在运行时使用的是 2.0 版本而不是 2.3.0。

我从 Tomcat 中删除了 core-2.0.jar,现在它可以工作了! :)

关于java - 没有这样的字段错误: MARGIN using ZXing library,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43779863/

相关文章:

android - 在 Android Studio 中集成 ZXing

java - Mockito findByIdOrNull 问题

java - 如何在S60操作系统中运行.jar文件?

java - 在java程序关闭之前调用方法

java - 如果屏幕上显示多个二维码,请扫描二维码

java - 在Java中打印二维码

java - 我可以从 Java 模块中排除导出的包吗?

android - 程序类型已经存在 : com. google.zxing.ChecksumException

android - 使用 ZXing 生成 GS1-128(以前称为 EAN-128)条形码

java - 在 Zxing 中启用 PDF417 解码