我正在开发一个基于 android 开发人员教程的简单相机应用程序,但我在运行它时遇到了一些问题。
这是我的 LogCat 打印输出。
现在我已经追踪到 NullPointerException 位于 CameraPreview 的第 30 行,正如您可能已经想到的那样,CameraPreview 的代码如下。我可以用 Java 编写代码,并且知道 NullPointer 是指存在尚未创建但据我所知已经创建的东西。
public class CameraPreview extends SurfaceView implements SurfaceHolder.Callback{
private SurfaceHolder mHolder;
private Camera mCamera;
private static final String TAG = "Preview";
@SuppressWarnings("deprecation")
public CameraPreview(Context context, Camera camera){
super(context);
mCamera = camera;
//Install callback to get notifications from the app
mHolder = getHolder();
mHolder.addCallback(this);
mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); //deprecated but required for Android Version 3.0 and under
}
public void surfaceCreated(SurfaceHolder holder) {
//Surface been created now need to tell app where to draw PREVIEW
try{
mCamera.setPreviewDisplay(holder);
mCamera.startPreview();
}
catch(IOException e){
Log.d(TAG, "Camera preview error: " + e.getMessage());
}
}
第 30 行是这里的代码片段 -mCamera.setPreviewDisplay(holder);
据我所知,“全局”变量中有一个 mCamera 实例private Camera mCamera
。
有人有什么想法吗?抱歉,这是一个尽可能格式化的长问题。
谢谢,丹
PS 我知道这个类中还需要其他方法,这只是“问题片段”。