相机手电筒项目在单击时已停止



我正在使用相机手电筒项目。

它在模拟器上加载,但是当我单击"开"按钮时,它意外停止了。这是猫日志 https://dl.dropbox.com/u/15065300/logcat1.png

这是代码:

public class FlashLight extends Activity {

    private final static String LOG_TAG = "FlashLight";  
    private Button mOnBtn;   
    private Camera mCamera;    
    private boolean isActive;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
      //this will be inside your onCreate...
        mOnBtn = (Button) findViewById(R.id.on_btn);
        mOnBtn.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                flipSwitch();
                processClick();
            }
        });
   }
    //these will be outside your onCreate
    public void flipSwitch() {
        isActive = !isActive;
    }
    @Override
    protected void onResume() {
        super.onResume();
        try{
            mCamera = Camera.open();
            mCamera.startPreview();
            Toast.makeText(getApplicationContext(),"Camera is  present", Toast.LENGTH_LONG).show();
        } catch( Exception e ){
            Log.e(LOG_TAG, "Impossible d'ouvrir la camera");
        }
    }
    @Override
    protected void onPause() {
        if( mCamera != null ){
            mCamera.release();
            mCamera = null;
        }
        super.onPause();
    }
    public void processClick() {
        if(isActive) {
            Parameters params = mCamera.getParameters();
            params.set("flash-mode", "torch");
            mCamera.setParameters( params );
            mCamera.startPreview();
        }
        else { 
             Parameters params = mCamera.getParameters();
             params.set("flash-mode", "off");
             mCamera.setParameters( params );
             mCamera.stopPreview();
        }
    }
}

代码中Flashlight.java的第 74 行有一个NullPointerException

可能是mCameraparams的值为 null 时正在使用。检查这些值的初始化/分配。

最新更新