Open Surendar7 opened 2 years ago
Same crash happening for me
Crash without reproduce step.
Caused by java.lang.SecurityException: No persistable permission grants found for UID 99910120 and Uri 0 @ content://com.miui.gallery.open/raw//storage/emulated/0/Download/wPeFo8Vh.jpg
at android.os.Parcel.readException(Parcel.java:1715)
at android.os.Parcel.readException(Parcel.java:1668)
at android.app.ActivityManagerProxy.takePersistableUriPermission(ActivityManagerProxy.java:4924)
at android.content.ContentResolver.takePersistableUriPermission(ContentResolver.java:1809)
at com.github.dhaval2404.imagepicker.provider.GalleryProvider.takePersistableUriPermission(GalleryProvider.kt:86)
at com.github.dhaval2404.imagepicker.provider.GalleryProvider.handleResult(GalleryProvider.kt:74)
at com.github.dhaval2404.imagepicker.provider.GalleryProvider.onActivityResult(GalleryProvider.kt:61)
at com.github.dhaval2404.imagepicker.ImagePickerActivity.onActivityResult(ImagePickerActivity.kt:110)
at android.app.Activity.dispatchActivityResult(Activity.java:7109)
at android.app.ActivityThread.deliverResults(ActivityThread.java:4192)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:4239)
at android.app.ActivityThread.-wrap20(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1599)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:165)
at android.app.ActivityThread.main(ActivityThread.java:6375)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:912)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:802)
implementation 'com.github.dhaval2404:imagepicker:2.1'
32
Any solution?
Same, happening in Redmi S2, Android 8.
Same error. Any solution?
Same error.Any solution?
The library takes persistent read permission for picked images through contentResolver.takePersistableUriPermission(uri, Intent.FLAG_GRANT_READ_URI_PERMISSION)
.
In android 10 and below an app can only have 128 persistent URIs. 512 in android 11 and above.
I started seeing this error more frequently in production after several years of my users uploading images and some of the users have now reached 500+ images.
As I'm uploading the images to a server and don't really need the persistence, I release the permission after upload with context.contentResolver.releasePersistableUriPermission(uri, Intent.FLAG_GRANT_READ_URI_PERMISSION)
.
See related bugtracker issue: https://issuetracker.google.com/issues/149315521 And stack overflow post: https://stackoverflow.com/questions/71099575/should-i-release-persistableuripermission-when-a-new-storage-location-is-chosen
My app running in production and I see a particular user is facing this issue in android 12 during image selection or photo capture. Below is the stack,
Caused by java.lang.SecurityException: No persistable permission grants found for UID 10284 and Uri content://com.google.android.apps.photos.contentprovider/2/1/mediakey:/local%3Aea99ad38-b212-482b-9cf9-5b9f62f1b07f/ORIGINAL/NONE/image/jpeg/1763723274 at android.os.Parcel.createExceptionOrNull(Parcel.java:2425) at android.os.Parcel.createException(Parcel.java:2409) at android.os.Parcel.readException(Parcel.java:2392) at android.os.Parcel.readException(Parcel.java:2334) at android.app.IUriGrantsManager$Stub$Proxy.takePersistableUriPermission(IUriGrantsManager.java:284) at android.content.ContentResolver.takePersistableUriPermission(ContentResolver.java:2896) at com.github.dhaval2404.imagepicker.provider.GalleryProvider.takePersistableUriPermission(GalleryProvider.java:86) at com.github.dhaval2404.imagepicker.provider.GalleryProvider.handleResult(GalleryProvider.java:74) at com.github.dhaval2404.imagepicker.provider.GalleryProvider.onActivityResult(GalleryProvider.java:61) at com.github.dhaval2404.imagepicker.ImagePickerActivity.onActivityResult(ImagePickerActivity.kt:110) at android.app.Activity.dispatchActivityResult(Activity.java:8381) at android.app.ActivityThread.deliverResults(ActivityThread.java:5294) at android.app.ActivityThread.handleSendResult(ActivityThread.java:5340) at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:54) at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:45) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2210) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loopOnce(Looper.java:201) at android.os.Looper.loop(Looper.java:288) at android.app.ActivityThread.main(ActivityThread.java:7839) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:550) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
Android version
Android 12
Impacted devices
Oneplus 8T
Installation method
Gradle: implementation 'com.github.dhaval2404:imagepicker:2.1'
SDK version
31