0

这是我的一个简单的Android摄像头应用程序代码的一部分,Android摄像头活动没有启动

public class CameraView extends Activity implements Callback, OnClickListener { 


static final int FOTO_MODE = 0; 
private static final String TAG = "CameraTest"; 
Camera mCamera; 
boolean mPreviewRunning = false; 
private Context mContext = this; 

public void onCreate(Bundle icicle) { 
    super.onCreate(icicle); 

    Log.e(TAG, "onCreate"); 

    Bundle extras = getIntent().getExtras(); 

    getWindow().setFormat(PixelFormat.TRANSLUCENT); 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
      WindowManager.LayoutParams.FLAG_FULLSCREEN); 
    setContentView(R.layout.main); 
    mSurfaceView = (SurfaceView) findViewById(R.id.surface_camera); 
    mSurfaceView.setOnClickListener(this); 
    mSurfaceHolder = mSurfaceView.getHolder(); 
    mSurfaceHolder.addCallback(this); 
    mSurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); 
} 

@Override 
protected void onRestoreInstanceState(Bundle savedInstanceState) { 
    super.onRestoreInstanceState(savedInstanceState); 
} 

Camera.PictureCallback mPictureCallback = new Camera.PictureCallback() { 
    public void onPictureTaken(byte[] imageData, Camera c) { 

     if (imageData != null) { 

      Intent mIntent = new Intent(); 

      StoreByteImage(mContext, imageData, 50, 
        "ImageName"); 
      mCamera.startPreview(); 

      setResult(FOTO_MODE, mIntent); 
      finish(); 

     } 
    } 
}; 







public void onClick(View arg0) { 

    mCamera.takePicture(null, mPictureCallback, mPictureCallback); 

} 

但是当我运行它,它给出了下面的行空指针异常

mSurfaceView.setOnClickListener(this); 

我不明白这个问题。你们能澄清一下吗?

+0

你能粘贴你的布局文件吗?你在main.xml中有ID surface_camera的表面视图吗? – Anirudh 2012-04-18 21:15:54

回答

0

NullPointerException表示mSurfaceView为null

尝试添加该代码添加了OnClickListener前:

if (null == mSurfaceView) 
    Log.e(TAG, "mSurfaceView is NULL!"); 
else 
    Log.e(TAG, 'mSurfaceView IS OKAY!"); 
0
mSurfaceView = (SurfaceView) findViewById(R.id.surface_camera); 

被返回null。空指针异常是因为您尝试访问的指针为空。

See findViewById API here