Android ContentResolver.openFileDescriptor()抛出java.lang.IllegalStateException:java.io.IOException:未能编校
我正在编写一个Android应用程序,它可以处理设备上的图像 我使用ContentResolver的openFileDescriptor()打开图像的文件描述符。但它抛出了一个异常,我无法从中找到一些图像。它适用于大多数图像。关于有问题的图像,我可以在默认的gallery应用程序中看到没有问题的图像 有人知道为什么会这样吗Android ContentResolver.openFileDescriptor()抛出java.lang.IllegalStateException:java.io.IOException:未能编校,android,android-contentresolver,Android,Android Contentresolver,我正在编写一个Android应用程序,它可以处理设备上的图像 我使用ContentResolver的openFileDescriptor()打开图像的文件描述符。但它抛出了一个异常,我无法从中找到一些图像。它适用于大多数图像。关于有问题的图像,我可以在默认的gallery应用程序中看到没有问题的图像 有人知道为什么会这样吗 Fatal Exception: java.lang.IllegalStateException: java.io.IOException: Failed to redact
Fatal Exception: java.lang.IllegalStateException: java.io.IOException: Failed to redact
/storage/emulated/0/DCIM/60s-70s/a2acf4b43dd94f609d605dacc6f0a2e0.jpg
at android.os.Parcel.createExceptionOrNull(Parcel.java:2393)
at android.os.Parcel.createException(Parcel.java:2369)
at android.os.Parcel.readException(Parcel.java:2352)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:190)
at android.database.DatabaseUtils.readExceptionWithFileNotFoundExceptionFromParcel(DatabaseUtils.java:153)
at android.content.ContentProviderProxy.openTypedAssetFile(ContentProviderNative.java:781)
at android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:1986)
at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:1801)
at android.content.ContentResolver.openFileDescriptor(ContentResolver.java:1634)
at android.content.ContentResolver.openFileDescriptor(ContentResolver.java:1581)
--- snip ---
我的代码:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
val pfd = mContentResolver.openFileDescriptor(
Uri.parse(strContentUri),
"r"
)
// strContentUri is like "content://media/external/images/media/21052"
您应该首先说明如何获得strContentUri。如果您使用了intent操作和onActivityResult,则将两者都发布。如果您保存了uri字符串并在以后使用了它,请告诉我。同时告诉Android版本的旧设备。
我可以在默认的gallery应用程序中毫无问题地看到图像。
您可能首先看到一个小缩略图。但是你能把它们全尺寸打开吗?可能文件同时被删除,但媒体存储区不知道该文件。/storage/emulated/0/DCIM/60s-70s/a2acf4b43dd94f609d605dacc6f0a2e0.jpg
您是否使用经典文件资源管理器查看该路径?1。我从query()获得了strContentUri。2.文件绝对没有被删除,我可以看到完整的图像。3.我可以在Galaxy S10的默认gallery应用程序和文件浏览器中看到图片。在我发布这个问题之后,我做了一些实验。看起来问题肯定是因为文件本身。删除文件后,我再次将其从PC复制到设备。但是问题发生了。您可以在此处下载该文件:From query()?但是什么呢?如果你想得到帮助,你最好展示一下你所做的。