ZXing库连接到摄像机时出错:0和其他问题

时间:2017-11-27 16:38:06

标签: android android-camera zxing

我对ZXing库有些麻烦,我确信这只是我的错。

首先,如果我启动我的应用程序,应用程序正常运行,所以我确定我

所有权限和问题仅在事件onStop期间,onPause ...

我按照一些示例(尽可能在此论坛中找到),但以下代码会生成一些错误

@Override
public void onPause() {
    super.onPause();
    Log.d("Pause", "pause");
    mScannerView.stopCameraPreview();
    mScannerView.stopCamera();           // Stop camera on pause
}

@Override
protected void onStop() {
    super.onStop();
    Log.d("Stop", "stop");
    mScannerView.stopCameraPreview();
    mScannerView.stopCamera();
}

但每次收到错误时都会:

E/ZXingScannerView: java.lang.RuntimeException: Method called after release()
java.lang.RuntimeException: Method called after release()
at android.hardware.Camera.setHasPreviewCallback(Native Method)
at android.hardware.Camera.setOneShotPreviewCallback(Camera.java:878)
at me.dm7.barcodescanner.zxing.ZXingScannerView.onPreviewFrame(ZXingScannerView.java:153)
    at android.hardware.Camera$EventHandler.handleMessage(Camera.java:1187)                      at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:135)
    at android.os.HandlerThread.run(HandlerThread.java:61)

我已经尝试删除了调用

        mScannerView.stopCameraPreview();

mScannerView.stopCamera();

并且没有 mScannerView.stopCameraPreview(); 该应用程序正常运行,但我不确定相机是否真的很接近我并没有浪费我的电池

当我旋转屏幕或按下后退按钮时,当应用程序返回活动状态时,会再次按下我的按钮,以便再次打开相机,我收到了消息:

W/CameraBase: An error occurred while connecting to camera: 0

你有什么建议吗?

提前致谢

1 个答案:

答案 0 :(得分:0)

部分解决我的麻烦。我在我的代码中添加了这个:

@Override
public void onDestroy(){
    super.onDestroy();
    Log.e("Destroy", "destroy");
    mScannerView.stopCameraPreview();
    mScannerView.stopCamera();
}

现在,当我按下后退按钮时,我没有错误进入Logcat,但是当我旋转手机时,我仍然有关于在发布()之后调用的方法的错误。奇怪的是,这个错误并不总是发生,但我不明白是什么原因。