I'm new to Android development and developing a program to capture images from Camera and store in the SDcard. The problem is I create Camera class separately and try to call in capture_image Activity. Here is my code. Please help me to solve this problem.
This is the way I call Camera class
Camera cam=new Camera();
fileUri= cam.captureImage();
Here is the capture_image Activity
package com.example.imagecapture;
import java.io.File;
import java.io.FileOutputStream;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.location.Location;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ImageView.ScaleType;
import android.widget.Toast;
public class capture_image extends Activity {
    private Uri fileUri; 
    private static final int CAMERA_CAPTURE_IMAGE_REQUEST_CODE = 100;
    private static int RESULT_LOAD_IMAGE = 1;
    private ImageView image1;
    private ImageView image2;
    private ImageView image3;
    private ImageView image4;
    private ImageView image5;
    private ImageView image6;
    private ImageView image7;
    private ImageView image8;
    //private LocationManager locationManager;
    private ImageView[] IMGS = { image1, image2, image3,image4,image5,image6,image7,image8 };
    private File file;
    private String[] FileNameStrings = new String[8];
    private File[] listFile;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.capture_details);
        Button buttonLoadImage = (Button) findViewById(R.id.btnBrowseimage);
        buttonLoadImage.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View arg0) {
                Intent i = new Intent(
                        Intent.ACTION_PICK,
                        android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
                startActivityForResult(i, RESULT_LOAD_IMAGE);
            }
        });
        Button buttonLoadCamera = (Button) findViewById(R.id.btnCapture);
        buttonLoadCamera.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View arg0) {
                // capture picture
                try
                {
                    Camera cam=new Camera();
                    fileUri= cam.captureImage();
                 } catch (NullPointerException e) {
                     e.printStackTrace();
                     //Toast.makeText(getBaseContext(), "Error:1 on uplod file", Toast.LENGTH_LONG).show();
                 } catch (Exception e) {
                     e.printStackTrace();
                     //Toast.makeText(getBaseContext(), "Error:2 File may be already exists", Toast.LENGTH_LONG).show();
                 } 
            }
        });
        Button buttonSendData = (Button) findViewById(R.id.btnSend);
        buttonSendData.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View arg0) {
                new PostDataAsyncTask().execute();
            }
        });
        Button buttonCancel = (Button) findViewById(R.id.btnCancel);
        buttonCancel.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View arg0) {
                finish();
                System.exit(0);
            }
        });
        /**
         * Checking GPS
         * */
        //locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
        //Toast.makeText(getBaseContext(), "Gps turned on ", Toast.LENGTH_LONG).show();
        /**/
        //TelephonyManager mTelephonyMgr;
        //mTelephonyMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); 
        //String myPhoneNumber = mTelephonyMgr.getLine1Number();
        //myPhoneNumber.substring(2);
    }
    /**
     * Checking GPS
     * */
    public void onLocationChanged(Location location) {
        String str = "Latitude: "+location.getLatitude()+" Longitude: "+location.getLongitude();
        Toast.makeText(getBaseContext(), str, Toast.LENGTH_LONG).show();
    }
    public void onProviderDisabled(String provider) {
        Toast.makeText(getBaseContext(), "Gps turned off ", Toast.LENGTH_LONG).show();
    }
    public void onProviderEnabled(String provider) {
        Toast.makeText(getBaseContext(), "Gps turned on ", Toast.LENGTH_LONG).show();
    }
    /**/
    /**
     * Display image from a path to ImageView
     */
    @SuppressLint("SdCardPath")
    private void previewCapturedImage() {
        try {
             // bimatp factory
            BitmapFactory.Options options = new BitmapFactory.Options();
            // downsizing image as it throws OutOfMemory Exception for larger
            options.inSampleSize = 8;
            final Bitmap bitmap = BitmapFactory.decodeFile(fileUri.getPath(), options);
            //Saving captured image to sdcard/cers
            String filaname=  Get_next_file_name();
            try {
                FileOutputStream out = new FileOutputStream(Environment.getExternalStorageDirectory() + File.separator  + "cers"+ File.separator+ filaname+".jpg");
                bitmap.compress(Bitmap.CompressFormat.PNG, 80, out);
                out.close();
             } catch (Exception e) {
                    e.printStackTrace();
             }
            //imgPreview.setImageBitmap(bitmap);
            IMGS[0] = (ImageView) findViewById(R.id.imageViewphoto1);
            IMGS[1] = (ImageView) findViewById(R.id.imageViewphoto2);
            IMGS[2] = (ImageView) findViewById(R.id.imageViewphoto3);
            IMGS[3] = (ImageView) findViewById(R.id.imageViewphoto4);
            IMGS[4] = (ImageView) findViewById(R.id.imageViewphoto5);
            IMGS[5] = (ImageView) findViewById(R.id.imageViewphoto6);
            IMGS[6] = (ImageView) findViewById(R.id.imageViewphoto7);
            IMGS[7] = (ImageView) findViewById(R.id.imageViewphoto8);
            for(int i=0;i<8;i++)
            {
                 if((String) IMGS[i].getTag()==null)
                 {
                    IMGS[i].setImageBitmap(bitmap);
                    File finalFile = new File(Environment.getExternalStorageDirectory() + File.separator  + "cers"+ File.separator+ filaname+".jpg");
                    FileNameStrings[i]= new String(finalFile.getAbsolutePath().toString());
                    IMGS[i].setTag( "image" +i);
                    IMGS[i].getLayoutParams().height = 100;
                    IMGS[i].getLayoutParams().width = 100;
                    break;
                 }
            }
        } catch (NullPointerException e) {
            e.printStackTrace();
        }
    }
    public String Get_next_file_name()
    {
        int fn,ofn=0;
        String[] filename;
        // Check for SD Card
        if (!Environment.getExternalStorageState().equals(
                Environment.MEDIA_MOUNTED)) {
            Toast.makeText(this, "Error! No SDCARD Found!", Toast.LENGTH_LONG).show();
        } else {
            // Locate the image folder in your SD Card
            file = new File(Environment.getExternalStorageDirectory()  + File.separator +"cers");
            // Create a new folder if no folder named SDImageTutorial exist
            file.mkdirs();
        }
        if (file.isDirectory()) {
            listFile = file.listFiles();
            for (int i = 0; i < listFile.length; i++) {
                filename =listFile[i].getName().split(".");
                try
                {
                    fn=Integer.parseInt(filename[0]);
                    if(ofn<fn)
                    {
                        ofn=fn;
                    }
                    ofn=ofn+1;
                }
                catch(Exception e)
                {
                    e.printStackTrace();
                }
            }
        }
        StringBuilder sb = new StringBuilder();
        sb.append("");
        sb.append(ofn);
        return  sb.toString();
    }
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        // if the result is capturing Image
        if (requestCode == CAMERA_CAPTURE_IMAGE_REQUEST_CODE) {
            if (resultCode == RESULT_OK) {
                // successfully captured the image
                // display it in image view
                previewCapturedImage();
            } else if (resultCode == RESULT_CANCELED) {
                // user cancelled Image capture
                Toast.makeText(getApplicationContext(),
                        "User cancelled image capture", Toast.LENGTH_SHORT)
                        .show();
            } else {
                // failed to capture image
                Toast.makeText(getApplicationContext(),
                        "Sorry! Failed to capture image", Toast.LENGTH_SHORT)
                        .show();
            }
        } 
        // Browse Images
        if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data) {
            Uri selectedImage = data.getData();
            String[] filePathColumn = { MediaStore.Images.Media.DATA };
            Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null);
            cursor.moveToFirst();
            int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
            String picturePath = cursor.getString(columnIndex);
            cursor.close();
            IMGS[0] = (ImageView) findViewById(R.id.imageViewphoto1);
            IMGS[1] = (ImageView) findViewById(R.id.imageViewphoto2);
            IMGS[2] = (ImageView) findViewById(R.id.imageViewphoto3);
            IMGS[3] = (ImageView) findViewById(R.id.imageViewphoto4);
            IMGS[4] = (ImageView) findViewById(R.id.imageViewphoto5);
            IMGS[5] = (ImageView) findViewById(R.id.imageViewphoto6);
            IMGS[6] = (ImageView) findViewById(R.id.imageViewphoto7);
            IMGS[7] = (ImageView) findViewById(R.id.imageViewphoto8);
            for(int i=0;i<8;i++)
            {
                 if((String) IMGS[i].getTag()==null)
                 {
                    //IMGS[i].setImageBitmap(decodeSampledBitmapFromResource(getResources(), R.id.tempimage, 100, 100));
                    IMGS[i].setImageBitmap(BitmapFactory.decodeFile(picturePath));
                    File finalFile = new File(picturePath);
                    FileNameStrings[i]= new String(finalFile.getAbsolutePath().toString());
                    IMGS[i].setTag( "image" +i);
                    IMGS[i].getLayoutParams().height = 100;
                    IMGS[i].getLayoutParams().width = 100;
                    IMGS[i].setScaleType(ScaleType.FIT_CENTER);
                    break;
                 }
            }
        }
    }
}
Error occurs in here (Camera class)
// start the image capture Intent
startActivityForResult(intent, CAMERA_CAPTURE_IMAGE_REQUEST_CODE);
This is the Camera Class
package com.example.imagecapture;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.util.Log;
public class Camera  extends Activity{
    private Uri fileUri;
    private static final int CAMERA_CAPTURE_IMAGE_REQUEST_CODE = 100;
    private static final int CAMERA_CAPTURE_VIDEO_REQUEST_CODE = 200;
    public static final int MEDIA_TYPE_IMAGE = 1;
    public static final int MEDIA_TYPE_VIDEO = 2;
    private static final String IMAGE_DIRECTORY_NAME = "CERS";
    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
    }
    public boolean DeviceSupportCamera()
    {
        if (!isDeviceSupportCamera()) {
            return false;
        }
        else
        {
            return true;
        }
    }
     /**
     * Checking device has camera hardware or not
     * */
    public  boolean isDeviceSupportCamera() {
        if (getApplicationContext().getPackageManager().hasSystemFeature(
            PackageManager.FEATURE_CAMERA)) {
            // this device has a camera
            return true;
        } else {
            // no camera on this device
            return false;
        }
    }
    /**
     * Capturing Camera Image will lauch camera app requrest image capture
     */
    public Uri captureImage() {
        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        fileUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE);
        intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);
        // start the image capture Intent
        startActivityForResult(intent, CAMERA_CAPTURE_IMAGE_REQUEST_CODE);
        return fileUri;
    }
    /**
     * Here we store the file url as it will be null after returning from camera
     * app
     */
    @Override
    protected void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        // save file url in bundle as it will be null on scren orientation
        // changes
        outState.putParcelable("file_uri", fileUri);
    }
    @Override
    protected void onRestoreInstanceState(Bundle savedInstanceState) {
        super.onRestoreInstanceState(savedInstanceState);
        // get the file url
        fileUri = savedInstanceState.getParcelable("file_uri");
    }
    /**
     * ------------ Helper Methods ---------------------- 
     * */
    /**
     * Creating file uri to store image
     */
    public Uri getOutputMediaFileUri(int type) {
        return Uri.fromFile(getOutputMediaFile(type));
    }
    /**
     * returning image / video
     */
    private static File getOutputMediaFile(int type) {
        // External sdcard location
        File mediaStorageDir = new File(
                Environment
                        .getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),
                IMAGE_DIRECTORY_NAME);
        // Create the storage directory if it does not exist
        if (!mediaStorageDir.exists()) {
            if (!mediaStorageDir.mkdirs()) {
                Log.d(IMAGE_DIRECTORY_NAME, "Oops! Failed create "
                        + IMAGE_DIRECTORY_NAME + " directory");
                return null;
            }
        }
        // Create a media file name
        String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss",
                Locale.getDefault()).format(new Date());
        File mediaFile;
        if (type == MEDIA_TYPE_IMAGE) {
            mediaFile = new File(mediaStorageDir.getPath() + File.separator
                    + "IMG_" + timeStamp + ".jpg");
        } 
        else if (type == MEDIA_TYPE_VIDEO) {
            mediaFile = new File(mediaStorageDir.getPath() + File.separator
                    + "VID_" + timeStamp + ".mp4");
        } else {
            return null;
        }
        return mediaFile;
    }
}
 
     
     
    