Zxing在Android设备上检测到但不在PC上检测到

时间:2013-01-24 01:23:31

标签: android unit-testing zxing robolectric

我正在使用Zxing core.jar来扫描条形码和qr代码并且它工作正常,但是我想使用Robolectric进行测试,在没有仿真器或设备的情况下运行自动测试,这将通过zxing获取N个图像,所以我的问题是zxing由于某种原因没有检测到.jpg文件中的任何类型的代码格式,我不确定图像上是否有限制大小,或者我缺少的其他东西。执行检测的代码是这样的,可以正常使用转换为jpgs

的帧预览
        BinaryBitmap bitmap = getBitmapFromImageData(input);
        Collection<BarcodeFormat> decodeFormats = getDecodeFormats();
        Map<DecodeHintType, Object> hints = getHints(decodeFormats);
        MultiFormatReader multiFormatReader = getMultiFormatReader(hints);

        Result rawResult;
        try {
            rawResult = multiFormatReader.decodeWithState(bitmap);
        } catch (NotFoundException e) {
            // not really an error, just QR code not found
            Log.e(LOG_TAG, "Code Detection not found exception.");
            return null;
        }

其中输入包含jpg格式的字节数组,并且正由getBitmapFromImageData转换为Zxings内部格式。就像我说库在设备上工作正常,但是我找不到任何合理的理由说明为什么从我的电脑上运行这些代码是行不通的。

1 个答案:

答案 0 :(得分:0)

您没有显示任何关键代码,例如您如何阅读图片。您应该检查它是否被正确读取,是否被代码正确地二进制化等等。查看项目中的单元测试,了解如何在桌面上正确读取和处理图像。我不知道你的代码在不同的“get”方法中可能做了什么。