title: Surprising Exception : Attempt to invoke virtual method 'java.lang.String android.net.Uri.getScheme()' on a null object reference
body: <p>I am loading the Image from Gallery and Crop it Using <a href="https://github.com/ArthurHub/Android-Image-Cropper" rel="nofollow noreferrer">Android Image Cropper</a></p>
  
  <p>My <code>onActivityResult</code> method Code </p>
  
  <pre><code>@Override
      protected void onActivityResult(int requestCode, int resultCode, Intent data) {
          if (resultCode == Activity.RESULT_OK) {
  
              if (requestCode == CHOOSE_IMAGE) {
  
                  CropImage.activity (data.getData ( ))
                          .setGuidelines (CropImageView.Guidelines.ON)
                          .start (this);
  
              } else if (requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE) {
                  Uri imageUri = getPickImageResultUri (data);
  
                  // For API &gt;= 23 we need to check specifically that we have permissions to read external storage,
                  // but we don't know if we need to for the URI so the simplest is to try open the stream and see if we get error.
                  boolean requirePermissions = false;
                  if (Build.VERSION.SDK_INT &gt;= Build.VERSION_CODES.M &amp;&amp;
                          checkSelfPermission (Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED &amp;&amp;
                          isUriRequiresPermissions (imageUri)) {
  
                      // request permissions and handle the result in onRequestPermissionsResult()
                      requirePermissions = true;
                      mCropImageUri = imageUri;
                      requestPermissions (new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 0);
                  }
  
  
                  if (!requirePermissions) {
  
                  }
  
        mCropImageUri = imageUri;
                  try {
                      Bitmap bitmap = MediaStore.Images.Media.getBitmap(getApplicationContext ().getContentResolver() ,  mCropImageUri);
  
                 mCropImageView.setImageBitmap (bitmap);
  
                  } catch (IOException e) {
                      e.printStackTrace ( );
                  }
  //                mImageLoader.displayImage (String.valueOf (mCropImageUri),mUiCircularImage,options);
  
              }
          }
      }
  </code></pre>
  
  <p>Everything is nice .</p>
  
  <p><code>resultCode</code> is OK.</p>
  
  <p><code>requestCode</code> is fine </p>
  
  <p><code>Data</code> is not null</p>
  
  <p>ImageUri </p>
  
  <pre><code>file:///storage/emulated/0/Android/data/com.hey.heypickup/cache/pickImageResult.jpeg
  </code></pre>
  
  <p>but When I want  to  Convert the above URI  into bitmap Using below Code </p>
  
  <pre><code>Bitmap bitmap = MediaStore.Images.Media.getBitmap(getApplicationContext ().getContentResolver() ,  mCropImageUri)
  </code></pre>
  
  <p>Getting Exception </p>
  
  <pre><code>FATAL EXCEPTION: main
                    Process: com.hey.heypickup, PID: 21994
                    java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=203, result=-1, data=Intent { (has extras) }} to activity {com.hey.heypickup/com.hey.heypickup.Activities.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.net.Uri.getScheme()' on a null object reference
                        at android.app.ActivityThread.deliverResults(ActivityThread.java:3790)
                        at android.app.ActivityThread.handleSendResult(ActivityThread.java:3833)
                        at android.app.ActivityThread.access$1700(ActivityThread.java:152)
                        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1390)
                        at android.os.Handler.dispatchMessage(Handler.java:102)
                        at android.os.Looper.loop(Looper.java:135)
                        at android.app.ActivityThread.main(ActivityThread.java:5538)
                        at java.lang.reflect.Method.invoke(Native Method)
                        at java.lang.reflect.Method.invoke(Method.java:372)
                        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:960)
                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
                     Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.net.Uri.getScheme()' on a null object reference
                        at android.content.ContentResolver.openInputStream(ContentResolver.java:641)
                        at android.provider.MediaStore$Images$Media.getBitmap(MediaStore.java:849)
                        at com.hey.heypickup.Activities.MainActivity.onActivityResult(MainActivity.java:128)
                        at android.app.Activity.dispatchActivityResult(Activity.java:6238)
                        at android.app.ActivityThread.deliverResults(ActivityThread.java:3786)
                        at android.app.ActivityThread.handleSendResult(ActivityThread.java:3833) 
                        at android.app.ActivityThread.access$1700(ActivityThread.java:152) 
                        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1390) 
                        at android.os.Handler.dispatchMessage(Handler.java:102) 
                        at android.os.Looper.loop(Looper.java:135) 
                        at android.app.ActivityThread.main(ActivityThread.java:5538) 
                        at java.lang.reflect.Method.invoke(Native Method) 
                        at java.lang.reflect.Method.invoke(Method.java:372) 
                        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:960) 
                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) 
  </code></pre>
  
  <p>so thats it ...</p>