title: Android: Crop an Image after Taking it With Camera with a Fixed Aspect Ratio
body: <p>I'm trying to crop an image after taking it, and my code is as follows:</p>
  
  <pre><code>   private void doTakePhotoAction() {
  
          Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
          intent.putExtra(MediaStore.EXTRA_OUTPUT, MediaStore.Images.Media.EXTERNAL_CONTENT_URI.toString());
          intent.putExtra("crop", "true");
          intent.putExtra("aspectX", 1);
          intent.putExtra("aspectY", 1);
          intent.putExtra("outputX", 96);
          intent.putExtra("outputY", 96);
  
          try {
              intent.putExtra("return-data", true);
              startActivityForResult(intent, PICK_FROM_CAMERA);
          } catch (ActivityNotFoundException e) {
              //Do nothing for now
          }
      }
  </code></pre>
  
  <p>With the above code, I'm able to go to crop mode, and crop the picture. However, the 1:1 aspect ratio is not enforced, and neither is the outputX and outputY. I believe this is because the intent was for taking a picture, not for cropping. I've also written another method to getData() from the Intent, and after that use the following:</p>
  
  <pre><code>Intent intent = new Intent("com.android.camera.action.CROP");
  intent.setClassName("com.android.camera", "com.android.camera.CropImage");
  </code></pre>
  
  <p>However, when I do that, I get the following runtime error:</p>
  
  <pre><code>E/AndroidRuntime(14648): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.camera/com.android.camera.CropImage}: java.lang.NullPointerException
  </code></pre>
  
  <p>Thanks for the help! :)</p>