uCrop
uCrop copied to clipboard
Cut break, TransformImageView: onFailure: setImageUri
Do you want to request a feature or report a bug?
bug
What is the current behavior?
There was an error when cutting. I don't know why. I chose the photo taken by my mobile phone and reported an error
It's normal to download pictures from the Internet
What is the expected behavior?
There was an error when cutting. I don't know why. I chose the photo taken by my mobile phone and reported an error
If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem.
check out my code:https://github.com/shijingsh/RxGalleryFinal
run sample
chose the photo taken by your phone
Please attach any image files, URL and stack trace
that can be used to reproduce the bug.
E/TransformImageView: onFailure: setImageUri
java.lang.IllegalArgumentException: Bounds for bitmap could not be retrieved from the Uri: [file:///storage/emulated/0/Pictures/1593499654172.jpg]
at com.yalantis.ucrop.task.BitmapLoadTask.doInBackground(BitmapLoadTask.java:104)
at com.yalantis.ucrop.task.BitmapLoadTask.doInBackground(BitmapLoadTask.java:36)
at android.os.AsyncTask$3.call(AsyncTask.java:378)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:919)
Which versions of uCrop, and which Android API versions are affected by this issue? Did this work in previous versions of uCrop?
v2.2.5
It's not about ucrop.I have solved the problem and recorded it here, because there is a problem with the code of taking photos, and there is no permission to set
like this
//This sentence is very important
captureIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
//Getting URI using fileprovider7
pictureUri = FileProvider7.getUriForFile(this.getActivity(), fileImagePath);
The complete code: check out my code:https://github.com/shijingsh/RxGalleryFinal I hope I can help some people
boolean b = PermissionCheckUtils.checkCameraPermission(mMediaActivity, requestStorageAccessPermissionTips, MediaActivity.REQUEST_CAMERA_ACCESS_PERMISSION);
if (b) {
boolean image = mConfiguration.isImage();
Intent captureIntent = image ? new Intent(MediaStore.ACTION_IMAGE_CAPTURE) : new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
if (captureIntent.resolveActivity(context.getPackageManager()) == null) {
Toast.makeText(getContext(), R.string.gallery_device_camera_unable, Toast.LENGTH_SHORT).show();
return;
}
if(mConfiguration.isMultipleShot() && image){
captureIntent = new Intent(MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA);
}
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss", Locale.CHINA);
String filename = String.format(image ? IMAGE_STORE_FILE_NAME : VIDEO_STORE_FILE_NAME, dateFormat.format(new Date()));
File fileImagePath = new File(mImageStoreDir, filename);
mImagePath = fileImagePath.getAbsolutePath();
Uri pictureUri = null;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
//This sentence is very important
captureIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
//Getting URI using fileprovider7
pictureUri = FileProvider7.getUriForFile(this.getActivity(), fileImagePath);
} else {
pictureUri = Uri.fromFile(fileImagePath);
}
captureIntent.putExtra(MediaStore.EXTRA_OUTPUT, pictureUri);
if(!image){
captureIntent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, mConfiguration.getVideoQuality());
}
startActivityForResult(captureIntent, TAKE_IMAGE_REQUEST_CODE);
}
Resolved this issue after adding android:requestLegacyExternalStorage="true" in my Manifest.
I received a similar error. After retrieving the photo from the gallery I got Uri but Ucrop was stopped. You can add "android: requestLegacyExternalStorage =" true "in AndroidManifest.xml". But Google has restricted this permission on Android 11 devices and advised to remove it. So I debugged and edited his library a bit.
Class: BitmapLoadTask.java. I noticed an error when granting READ_EXTERNAL_STORAGE permission, if not then the app works fine. So I deleted this part, although I don't know why he should be.
From Line 174 to 184
I am facing this issue while crop the image. I am using com.github.yalantis:ucrop:2.2.8 . I am facing this issue in Xiaomi Redmi note 8A device and some Realme devices.
2022-04-03 14:26:00.332 23053-23053/com.apps.main E/TransformImageView: onFailure: setImageUri java.lang.IllegalArgumentException: Bounds for bitmap could not be retrieved from the Uri: [content://apps.main.provider/images/JPEG_20220403_142558_4239916797258029201.jpg] at wb.b.b(SourceFile:111) at wb.b.doInBackground(SourceFile:36) at android.os.AsyncTask$3.call(AsyncTask.java:378) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) at java.lang.Thread.run(Thread.java:919)