Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android ContentResolver.openFileDescriptor()抛出java.lang.IllegalStateException:java.io.IOException:未能编校_Android_Android Contentresolver - Fatal编程技术网

Android ContentResolver.openFileDescriptor()抛出java.lang.IllegalStateException:java.io.IOException:未能编校

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

我正在编写一个Android应用程序,它可以处理设备上的图像

我使用ContentResolver的openFileDescriptor()打开图像的文件描述符。但它抛出了一个异常,我无法从中找到一些图像。它适用于大多数图像。关于有问题的图像,我可以在默认的gallery应用程序中看到没有问题的图像

有人知道为什么会这样吗

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()?但是什么呢?如果你想得到帮助,你最好展示一下你所做的。