【发布时间】:2013-06-12 10:01:00
【问题描述】:
要明确一点:这与返回 null 的函数无关。这是关于一个函数抛出一个Exception 原来是null。
throw null;
这样。
我有一个相机应用程序,它在 Ice Cream Sandwich 中运行良好已有一段时间了。在姜饼中它崩溃了;但是,我刚刚看到Camera.open() throw 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。什么意思?
【问题讨论】:
-
releaseCameraAndPreview();检查此函数中发生了什么。同时发布完整的堆栈跟踪
-
无论如何发布堆栈跟踪。
-
使用 mCamera.release();完成后的图片
-
根据docs,如果设备没有后置摄像头,
Camera.open()返回null。你确定你使用的是 open(int) 而不是 open()? -
顺便说一句,你知道不会有堆栈跟踪,对吧?异常为空,因此 printStackTrace() 正在抛出 NPE。
标签: android exception null android-camera