我对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
你有什么建议吗?
提前致谢
答案 0 :(得分:0)
部分解决我的麻烦。我在我的代码中添加了这个:
@Override
public void onDestroy(){
super.onDestroy();
Log.e("Destroy", "destroy");
mScannerView.stopCameraPreview();
mScannerView.stopCamera();
}
现在,当我按下后退按钮时,我没有错误进入Logcat,但是当我旋转手机时,我仍然有关于在发布()之后调用的方法的错误。奇怪的是,这个错误并不总是发生,但我不明白是什么原因。