Java 当图像尺寸较大时,RBGLuminanceSource.toString正在抛出StackOverflowerError
我不明白为什么我会被StackOverflower搞错。我正在尝试从图像构建位图来扫描二维码sourcefrom decode()方法是以标准方式构建的:Java 当图像尺寸较大时,RBGLuminanceSource.toString正在抛出StackOverflowerError,java,qr-code,zxing,Java,Qr Code,Zxing,我不明白为什么我会被StackOverflower搞错。我正在尝试从图像构建位图来扫描二维码sourcefrom decode()方法是以标准方式构建的: if (bitmap != null) { int[] intArray = new int[bitmap.getWidth() * bitmap.getHeight()]; bitmap.getPixels(intArray, 0, bitmap.getWidth(), 0, 0, bitmap.getWidth()
if (bitmap != null) {
int[] intArray = new int[bitmap.getWidth() * bitmap.getHeight()];
bitmap.getPixels(intArray, 0, bitmap.getWidth(), 0, 0, bitmap.getWidth(), bitmap.getHeight());
return new RGBLuminanceSource(bitmap.getWidth(), bitmap.getHeight(), intArray);
然后decode()抛出错误:
源:方法引发了“java.lang”StackOverflowerr异常。无法计算com.google.zxing.RGBLuminanceSource.toString()的值
只有当我上传大尺寸的图像(例如1242x2688px)时才会发生这种情况。当我将上传的图像缩小到2160px的高度时,一切都正常,并且图像被正确扫描。
我找不到任何关于zxing维度限制的信息
有人知道为什么吗?问题解决了。
我不得不将Zxing libs升级到新版本。在我的问题中,3.3.1已经足够了。
但较新的LIB需要SDK 19+。问题已解决。
我不得不将Zxing libs升级到新版本。在我的问题中,3.3.1已经足够了。
但是较新的lib需要SDK 19+。能否提供
decode()
的完整堆栈跟踪和完整代码。SOE通常由循环调用引起,方法A调用方法B,方法B将方法A作为实例调用。能否提供decode()
的完整堆栈轨迹和完整代码。SOE通常由循环调用引起,方法A调用方法B,方法B将方法A作为实例调用。
private QRCodeMultiReader qrCodeReader;
public void decode(LuminanceSource source, ScannerResultListener resultListener) {
try {
BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));
String decodedContent = qrCodeReader.decode(bitmap, hints).getText();
Timber.d("qr code scanner has successfully decoded content: [%s]", decodedContent);
resultListener.onScanningSuccess(decodedContent);
} catch (ReaderException re) {
Timber.d(re.getMessage(), "qr code scanner can not decode code");
resultListener.onScanningFailure();
} finally {
qrCodeReader.reset();
}
}