0

I am loading the Image from Gallery and Crop it Using Android Image Cropper

My onActivityResult method 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 >= 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 >= Build.VERSION_CODES.M &&
                        checkSelfPermission (Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED &&
                        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);

            }
        }
    }

Everything is nice .

resultCode is OK.

requestCode is fine

Data is not null

ImageUri

file:///storage/emulated/0/Android/data/com.hey.heypickup/cache/pickImageResult.jpeg

but When I want to Convert the above URI into bitmap Using below Code

Bitmap bitmap = MediaStore.Images.Media.getBitmap(getApplicationContext ().getContentResolver() ,  mCropImageUri)

Getting Exception

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) 

so thats it ...

K Guru
  • 1,292
  • 2
  • 17
  • 36
  • Possible duplicate of [Android: App crashes on onActivityResult while using Camera Intent](http://stackoverflow.com/questions/34504717/android-app-crashes-on-onactivityresult-while-using-camera-intent) – Juan Cruz Soler Jan 09 '17 at 15:27
  • @juan Cruz in my case nothing is null and I am getting image from gallery – K Guru Jan 09 '17 at 15:32
  • can you update code of getPickImageResultUri() and isUriRequiresPermissions() method? – rogerwar Jan 09 '17 at 16:43

1 Answers1

1

mCropImageUri is null.

In particular, if this test is false, you do not have code in your question that assigns it a value:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M &&
                    checkSelfPermission (Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED &&
                    isUriRequiresPermissions (imageUri))
CommonsWare
  • 986,068
  • 189
  • 2,389
  • 2,491