Camera.open()THROWS null

时间:2013-06-12 10:01:00

标签: android exception null android-camera

要明确:这不是关于返回null的函数。这是一个抛出Exception的函数,结果是null

throw null;

就像那样。

我有一个相机应用程序,它在冰淇淋三明治中工作了一段时间。在姜饼中它崩溃了;但是,我刚看到Camera.open() 抛出 null

try {
    releaseCameraAndPreview();
    mCamera = Camera.open(camera);
    //and the above throws ...
} catch (Exception e) {
    e.printStackTrace();
    //and e is null, causing a NullPointerException
}

releaseCameraAndPreview就是这样:

private void releaseCameraAndPreview() {
    if (mCamera != null) {
        mCamera.stopPreview();
        mCamera.release();
        mCamera = null;
    }
}

此时相机为空,所以没有任何反应。

我甚至不知道可能抛出null。这是什么意思?

2 个答案:

答案 0 :(得分:0)

重新启动手机修复此问题;我只能假设相机在测试过程中会以某种方式进入损坏状态。

答案 1 :(得分:0)

  

重新锁定相机以防止其他进程访问它。除非调用unlock(),否则默认情况下会锁定相机对象。通常使用reconnect()代替   从API级别14开始,相机会在start()中自动锁定应用程序。应用程序可以在录制开始后使用相机(例如:缩放)。录制开始或停止后无需呼叫。

检查对象是否已锁定,如果是,请尝试解锁。

https://developer.android.com/reference/android/hardware/Camera.html#lock%28%29