间谍相机开发_NullPointerException 错误

来源:互联网 发布:mac安装myeclipse 编辑:程序博客网 时间:2024/04/25 06:03

空指针异常.

通常由使用空值造成,由未初始化对象产生. 


在做foxbox 这个项目的spycamera模块时, 当不打开预览(则 Camera对象未初始化)  直接返回主菜单时,surfaceDestroyed 弹出该异常.


因为此函数 

public void surfaceDestroyed(SurfaceHolder surfaceholder)
{

mCamera01.stopPreview();
mCamera01.release();
mCamera01 = null;


try
{
delFile(strCaptureFilePath);
}
catch(Exception e)
{
e.printStackTrace();
}
Log.i(TAG,"surface Destroyed");
}

操作了未初始化的mCamera01 对象.

解决方法: 设置 boolean isinited =false;


   当预览打开,即初始化相机时  isinited =1;


  在 surfaceDestroyed 添加语句

public void surfaceDestroyed(SurfaceHolder surfaceholder)
{
if(isinited==false)
mCamera01=Camera.open();

mCamera01.stopPreview();
mCamera01.release();
mCamera01 = null;


try
{
delFile(strCaptureFilePath);
}
catch(Exception e)
{
e.printStackTrace();
}
Log.i(TAG,"surface Destroyed");
}

原创粉丝点击