由于Exception(在Moto E上)无法启动相机预览

时间:2014-06-11 09:53:20

标签: android android-camera

我在Moto E上运行相机时遇到问题。在其他设备上我的代码运行良好,但不适用于Moto E.可能是因为Moto E没有闪光灯或辅助相机。

private synchronized void startCameraPreview() {


        try {
            previewView.getHolder().addCallback(this);
            previewView.getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
            camera.setPreviewCallback(null);

            camera.setPreviewDisplay(surfaceHolder);
            camera.startPreview();

        }
        catch (Exception exception) {
            Log.e(TAG, "Can't start camera preview due to Exception", exception);

            listener.onCameraError();
        }
    }

这会给出下面粘贴的错误:

Can't start camera preview due to Exception
 java.io.IOException: setPreviewTexture failed
at android.hardware.Camera.setPreviewDisplay(Native Method)
    at android.hardware.Camera.setPreviewDisplay(Camera.java:474)
    at CameraFragment.startCameraPreview(CameraFragment.java:149)
    at CameraFragment.surfaceCreated(CameraFragment.java:472)
    at android.view.SurfaceView.updateWindow(SurfaceView.java:572)
    at android.view.SurfaceView.access$000(SurfaceView.java:86)

如果有人知道如何处理这个问题?

1 个答案:

答案 0 :(得分:6)

  

我使用camera.stopPreview()解决了这个错误;就在camera.setPreviewDisplay()之前。希望这对其他人有用。

只是记录Nidhi的解决方案,作为那些没有阅读评论的人的答案。

但问题的根源仍然让我无法理解。我在camera.stopPreview中尝试了camera.release以及onPause()(因为我在相机恢复后遇到了崩溃),但显然直到我尝试上述解决方案后它才能正常工作。