Android - 无法连接到相机

tee*_*ink 31 android

我正在使用Android APIDemo示例代码.

当我运行CameraPreview示例时,首先它给了我一个错误.

我找到了那个,样本工作了一段时间.
现在,它不再有效.它说

ERROR/AndroidRuntime(2949): java.lang.RuntimeException: Fail to connect to camera service  
Run Code Online (Sandbox Code Playgroud)

可能导致什么?它在camera.open()调用时发生.

谢谢,
Tee

Kan*_*gur 28

请务必正确释放所有获得的相机资源:

    @Override
public void surfaceDestroyed(SurfaceHolder holder) {
    if (mCam != null) {
        mCam.stopPreview();
        mCam.setPreviewCallback(null);
        mCam.release();
        mCam = null;
    }
}

    @Override
public void surfaceCreated(SurfaceHolder holder) {
    if (mCam == null) {
        mCam = Camera.open();
        try {
            mCam.setPreviewDisplay(holder);

            // TODO test how much setPreviewCallbackWithBuffer is faster
            mCam.setPreviewCallback(this);
        } catch (IOException e) {
            mCam.release();
            mCam = null;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)


Com*_*are 17

确保<uses-permission>元素位于文件中的正确位置AndroidManifest.xml.

  • 我仍然随机得到这个错误.我的一个活动连接到相机,在模拟器上拍摄一些照片,将数据传递给下一个活动.当我以一些延迟重新启动活动时,应用程序崩溃并出现相同的错误.但是,当我将完整的应用程序作为新鲜应用程序启动时, (2认同)

plu*_*us- 5

它发生,如果你的活动不正常关闭相机surfaceDestroyedonConfigurationChanged等...

每次退出活动时都不要忘记这样做:

        if (camera!=null){
                camera.stopPreview();
                camera.release();
                camera=null;
        }
Run Code Online (Sandbox Code Playgroud)