最近在使用com.swetake.util.Qrcode生成二维码时,遇到这样数组下标越界的异常,异常出在如下位置:
394行构建的codeWords字节数组的长度,大于393行的l2的值,导致398行越界了。
解决方案:
通过调整 maxDataCodewords 入参的大小,将其设置大一点即可
那这个值如何放大,继续往下看该值的来源
是在这里经过maxDataBits右移三位后算出的,那就需要调整maxDataBits的值,该怎么调整呢 继续看:
maxDataBits的值是由qrcodeVersion决定的,因此可以得出结论:
将 qrcodeVersion的值设置大一点即可解决。该值决定二维码的容量。不宜设置过大,qrcodeVersion最大支持40,设置过大,会导致二维码无法识别,变成如下所示的样子