Note that there are some explanatory texts on larger screens.

plurals
  1. POApp crashing while trying to take new photo
    primarykey
    data
    text
    <p>I am developing a customized camera app. when app starts camera opens there are three buttons at bottom. </p> <ol> <li>Capture (To take picture).</li> <li>Take New (return from preview to camera to take picture again.)</li> <li>Not using for anything.</li> </ol> <p>Everything works fine. pressing capture takes the picture and previews the taken picture accurately. But when I press take new button to come into camera mode from preview mode the app crashes don't have any idea what I am doing wrong. following is the code I am using. </p> <pre><code>public class MainActivity extends Activity { protected static final String TAG = null; private Camera mCamera; private CameraPreview mPreview; public static final int MEDIA_TYPE_IMAGE = 1; static int result; static int degrees = 90; private Button captureButton, btn_new; public FrameLayout preview; private static File mediaFile; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Create an instance of Camera mCamera = getCameraInstance(); // Create our Preview view and set it as the content of our activity. mPreview = new CameraPreview(this, mCamera); FrameLayout preview = (FrameLayout) findViewById(R.id.camera_preview); preview.addView(mPreview); captureButton = (Button) findViewById(R.id.button_capture); captureButton.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { // get an image from the camera mCamera.takePicture(null, null, mPicture); } } ); btn_new = (Button) findViewById(R.id.button_new); btn_new.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mCamera = getCameraInstance(); //preview = (FrameLayout) findViewById(R.id.camera_preview); //preview.addView(mPreview); } }); } private PictureCallback mPicture = new PictureCallback() { @Override public void onPictureTaken(byte[] data, Camera camera) { File pictureFile = getOutputMediaFile(MEDIA_TYPE_IMAGE); if (pictureFile == null){ return; } try { FileOutputStream fos = new FileOutputStream(pictureFile); fos.write(data); fos.close(); } catch (FileNotFoundException e) { Log.d(TAG, "File not found: " + e.getMessage()); } catch (IOException e) { Log.d(TAG, "Error accessing file: " + e.getMessage()); } } }; /** Create a File for saving an image or video */ private static File getOutputMediaFile(int type){ // To be safe, you should check that the SDCard is mounted // using Environment.getExternalStorageState() before doing this. File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM), "Camera"); // Create the storage directory if it does not exist if (! mediaStorageDir.exists()){ if (! mediaStorageDir.mkdirs()){ Log.d("MyCameraApp", "failed to create directory"); return null; } } // Create a media file name String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date()); if (type == MEDIA_TYPE_IMAGE){ mediaFile = new File(mediaStorageDir.getPath() + File.separator + "IMG_"+ timeStamp + ".jpg"); } else { return null; } return mediaFile; } @SuppressWarnings("null") public static Camera getCameraInstance(){ Camera c = null; Context context = null; try{ c = Camera.open(); //setCameraDisplayOrientation(MainActivity, 0, c); c.setDisplayOrientation(degrees); } catch (Exception e) { Toast.makeText(context.getApplicationContext(),"Camera is not available" , Toast.LENGTH_LONG).show(); } return c; } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.activity_main, menu); return true; } </code></pre> <p>}</p> <p>Thanks in Advance. Finally here is my error logcat:</p> <hr> <p>02-21 18:24:01.868: E/AndroidRuntime(937): FATAL EXCEPTION: main 02-21 18:24:01.868: E/AndroidRuntime(937): java.lang.NullPointerException 02-21 18:24:01.868: E/AndroidRuntime(937): at com.example.facebooktag.MainActivity.getCameraInstance(MainActivity.java:136) 02-21 18:24:01.868: E/AndroidRuntime(937): at com.example.facebooktag.MainActivity$3.onClick(MainActivity.java:66) 02-21 18:24:01.868: E/AndroidRuntime(937): at android.view.View.performClick(View.java:4202) 02-21 18:24:01.868: E/AndroidRuntime(937): at android.view.View$PerformClick.run(View.java:17340) 02-21 18:24:01.868: E/AndroidRuntime(937): at android.os.Handler.handleCallback(Handler.java:725) 02-21 18:24:01.868: E/AndroidRuntime(937): at android.os.Handler.dispatchMessage(Handler.java:92) 02-21 18:24:01.868: E/AndroidRuntime(937): at android.os.Looper.loop(Looper.java:137) 02-21 18:24:01.868: E/AndroidRuntime(937): at android.app.ActivityThread.main(ActivityThread.java:5039) 02-21 18:24:01.868: E/AndroidRuntime(937): at java.lang.reflect.Method.invokeNative(Native Method) 02-21 18:24:01.868: E/AndroidRuntime(937): at java.lang.reflect.Method.invoke(Method.java:511) 02-21 18:24:01.868: E/AndroidRuntime(937): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 02-21 18:24:01.868: E/AndroidRuntime(937): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 02-21 18:24:01.868: E/AndroidRuntime(937): at dalvik.system.NativeStart.main(Native Method)</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload