Android zxing扫描后出现 FAILED BINDER TRANSACTION...

在用一款黑莓手机进行 zxing 二维码扫描时,出现错误:  FAILED BINDER TRANSACTION... ... 


细看了下代码,发现错误导致原因: 因为之前写的扫描的代码,扫描框有些小,于是修改了zxing包下的CameraManager类的getFramingRect 的 MAX_FRAME_WIDTH、MAX_FRAME_HEIGHT。

Android中使用Intent进行传递数据时出现:E/JavaBinder﹕ !!! FAILED BINDER TRANSACTION !!!错误信息。  例如传递一个大的Bitmap对象时。这种情况是因为系统对Intent传递数据有大小限制。原来是我将预览框变大后,扫描获得的 bitmap 也就大了,在 intent' 传输的时候,受到大小的限制,于是出现 FAILED BINDER TRANSACTION。由于我调用扫描的时候不需要bitmap,所以我在“处理扫描结果"传输的时候,把  bundle.putParcelable("bitmap", barcode);注释掉,错误bug得以解决。大家如果需要传输 bitmap的话,记得在放入 intent之前,对 bitmap的大小做一下处理。


/**
 * 处理扫描结果
 *
 * @param result
 * @param barcode
 */
public void handleDecode(Result result, Bitmap barcode) {
    inactivityTimer.onActivity();
    playBeepSoundAndVibrate();
    String resultString = result.getText();
    if (resultString.equals("")) {
        Toast.makeText(MipcaActivityCapture.this, "Scan failed!", Toast.LENGTH_SHORT).show();
    } else {
        Intent resultIntent = new Intent();
        Bundle bundle = new Bundle();
        bundle.putString("result", resultString);
        //TODO  FAILED BINDER TRANSACTION报错原因:
        /*bundle.putParcelable("bitmap", barcode);*/
        resultIntent.putExtras(bundle);
        this.setResult(RESULT_OK, resultIntent);
    }
    MipcaActivityCapture.this.finish();
}




猜你喜欢

转载自blog.csdn.net/rlw_1009/article/details/78830374
今日推荐