Java Zbar二维码读取器-二维码读取器后崩溃

Java Zbar二维码读取器-二维码读取器后崩溃,java,android,zbar-sdk,Java,Android,Zbar Sdk,我正试图用Zbar做一个二维码阅读器,但在二维码检测后应用程序崩溃(当结果=0时) 我没有收到错误消息,只有警告: 选中曲面信息创建=false formatChanged=false sizeChanged=false visible=false visibleChanged=true surfaceChanged=true realSizeChanged=false重画所需=false 左=假顶=假 这是我得到的密码 public void onPreviewFrame(byte[] dat

我正试图用Zbar做一个二维码阅读器,但在二维码检测后应用程序崩溃(当结果=0时)

我没有收到错误消息,只有警告:

选中曲面信息创建=false formatChanged=false sizeChanged=false visible=false visibleChanged=true surfaceChanged=true realSizeChanged=false重画所需=false 左=假顶=假

这是我得到的密码

public void onPreviewFrame(byte[] data, Camera camera) {
        Camera.Parameters parameters = camera.getParameters();
        Camera.Size size = parameters.getPreviewSize();

        Image barcode = new Image(size.width, size.height, "Y800");
        barcode.setData(data);

        int result = mScanner.scanImage(barcode);

        if (result != 0) {
            mCamera.cancelAutoFocus();
            mCamera.setPreviewCallback(null);
            mCamera.stopPreview();
            mPreviewing = false;
            SymbolSet syms = mScanner.getResults();
            for (Symbol sym : syms) {
                String symData = sym.getData();
                if (!TextUtils.isEmpty(symData)) {
                    Intent dataIntent = new Intent();
                    dataIntent.putExtra(SCAN_RESULT, symData);
                    dataIntent.putExtra(SCAN_RESULT_TYPE, sym.getType());
                    setResult(Activity.RESULT_OK, dataIntent);
                    finish();
                    break;
                }
            }
        }
    }

试试这个。。。对于Qr阅读器

public类QRCodeActivityTest扩展活动实现
OnQRCodeReadListener{

QRCodeReaderView qrView;
TextView tvQr;
Image_Sql sql;
String Description;
@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.qrtest_layout);
    qrView = (QRCodeReaderView) findViewById(R.id.qRCodeReaderView1);
    qrView.setOnQRCodeReadListener(this);
    tvQr = (TextView) findViewById(R.id.txtqr);
    sql= new Image_Sql(this);
    sql.Open();
}

@Override
public void onQRCodeRead(String text, PointF[] points) {
    // TODO Auto-generated method stub
    Cursor desc = sql.fetchNameFromTitle(text);
    while (desc.moveToNext()) {
        Description = desc.getString(desc
                .getColumnIndexOrThrow(Image_Sql.IMAGE_DESCRIPTION));
    }
    if(text.equals(""))
    {
        Dialog d = new Dialog(this);
        TextView tv = new TextView(this);
        tv.setText("Please Sync Catalogue TO Display QRCode Image Information");
        d.setContentView(tv);
        d.setTitle("Required Syncing..");
        d.show();
    }else
    {
     tvQr.setText(Description);
    }
}

@Override
public void cameraNotFound() {
    // TODO Auto-generated method stub

}

@Override
public void QRCodeNotFoundOnCamImage() {
    // TODO Auto-generated method stub

}

@Override
protected void onResume() {
    super.onResume();
    qrView.getCameraManager().startPreview();
}

@Override
protected void onPause() {
    super.onPause();
    qrView.getCameraManager().stopPreview();
}

}

我确实更新了我的代码,效果非常好!谢谢大家

  public void onPreviewFrame(byte[] data, Camera camera) {
    Camera.Parameters parameters = camera.getParameters();
    Camera.Size size = parameters.getPreviewSize();

    Image barcode = new Image(size.width, size.height, "Y800");
    barcode.setData(data);

    int result = mScanner.scanImage(barcode);

    if (result != 0) {
        mCamera.cancelAutoFocus();
        mCamera.setPreviewCallback(null);
        mCamera.stopPreview();
        mPreviewing = false;
        SymbolSet syms = mScanner.getResults();
        for (Symbol sym : syms) {
            String symData = sym.getData();
           Log.i("url qr code",symData);
           Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(symData));
           startActivity(browserIntent);

                break;   
        }
    }
}

你在emulator或Device中运行,是在阅读问题还是只是发布一些随机的google搜索结果?