Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.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 10(Q)中使用glide从设备加载图像_Android_Kotlin_Android Glide - Fatal编程技术网

无法在Android 10(Q)中使用glide从设备加载图像

无法在Android 10(Q)中使用glide从设备加载图像,android,kotlin,android-glide,Android,Kotlin,Android Glide,滑动未加载从库中拾取的图像。 尽管授予了写和读权限,但它始终显示以下错误 java.io.FileNotFoundException: /storage/emulated/0/Pictures/JPEG_20200120103701_3365226945725752825.jpg: open failed: EACCES (Permission denied) 在android清单中添加此行 android:requestLegacyExternalStorage=“true”添加此行and

滑动未加载从库中拾取的图像。 尽管授予了写和读权限,但它始终显示以下错误

 java.io.FileNotFoundException: /storage/emulated/0/Pictures/JPEG_20200120103701_3365226945725752825.jpg: open failed: EACCES (Permission denied)

在android清单中添加此行


android:requestLegacyExternalStorage=“true”

添加此行android清单


android:requestLegacyExternalStorage=“true”

没有画廊应用程序会为您提供该文件路径

因此,您一直在胡乱处理getRealPathFromUri()之类的东西

这在Q上不行,因为没有人可以访问该路径

最好直接使用获得的uri


你也应该在Q下面这样做。

没有任何图库应用程序会给你提供该文件路径

因此,您一直在胡乱处理getRealPathFromUri()之类的东西

这在Q上不行,因为没有人可以访问该路径

最好直接使用获得的uri


您也应该在Q下面执行此操作。

创建文件实例并将要加载到ImageView中的文件uri传递给用户 您还可以使用RequestListener在出现故障时跟踪错误

 Glide.with(context)
        .load(new File(fileUri.getPath())) // Uri of the picture
        .into(imageview)
        .listener(new RequestListener<String, GlideDrawable>() {
        @Override
        public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) {
            Log.e("xmx1","Error "+e.toString());
            return false;
        }

        @Override
        public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
            Log.e("xmx1","no Error ");
            return false;
        }
    });
Glide.with(上下文)
.load(新文件(fileUri.getPath())//图片的Uri
.into(图像视图)
.listener(新的RequestListener(){
@凌驾
公共布尔onException(异常e、字符串模型、目标、布尔isFirstResource){
Log.e(“xmx1”,“Error”+e.toString());
返回false;
}
@凌驾
公共布尔值onResourceReady(GlideDrawable资源、字符串模型、目标、布尔值isFromMemoryCache、布尔值isFirstResource){
Log.e(“xmx1”,“无错误”);
返回false;
}
});
确保您已经添加了

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 

在应用程序标签中```

<application
android:name=".App"
android:allowBackup="false"
android:icon="@mipmap/ic_launcher"
android:requestLegacyExternalStorage="true"
... >

创建文件实例并将要加载到ImageView中的文件uri传递给用户 您还可以使用RequestListener在出现故障时跟踪错误

 Glide.with(context)
        .load(new File(fileUri.getPath())) // Uri of the picture
        .into(imageview)
        .listener(new RequestListener<String, GlideDrawable>() {
        @Override
        public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) {
            Log.e("xmx1","Error "+e.toString());
            return false;
        }

        @Override
        public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
            Log.e("xmx1","no Error ");
            return false;
        }
    });
Glide.with(上下文)
.load(新文件(fileUri.getPath())//图片的Uri
.into(图像视图)
.listener(新的RequestListener(){
@凌驾
公共布尔onException(异常e、字符串模型、目标、布尔isFirstResource){
Log.e(“xmx1”,“Error”+e.toString());
返回false;
}
@凌驾
公共布尔值onResourceReady(GlideDrawable资源、字符串模型、目标、布尔值isFromMemoryCache、布尔值isFirstResource){
Log.e(“xmx1”,“无错误”);
返回false;
}
});
确保您已经添加了

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 

在应用程序标签中```

<application
android:name=".App"
android:allowBackup="false"
android:icon="@mipmap/ic_launcher"
android:requestLegacyExternalStorage="true"
... >

您必须传递相关的uri,而不是路径

 Glide.with(context).load(model.photoUri).into(image)
这样你就不需要添加了

android:requestLegacyExternalStorage="true"

在清单文件中。

您必须传递相关的uri,而不是路径

 Glide.with(context).load(model.photoUri).into(image)
这样你就不需要添加了

android:requestLegacyExternalStorage="true"

在您的清单文件中。

请提供额外信息。这个问题太糟糕了。这类问题通常有很多负面标记。请检查答案。请提供额外信息。这个问题太糟糕了。这类问题通常有很多负面标记。请检查答案我使用了下面的直接路径,但不工作没有错误,但无法在图像视图中显示
file:///storage/emulated/0/DCIM/Camera/20200319_162840.jpg
我使用的是如下所示的直接路径,但不工作没有错误,但无法在图像视图中显示
file:///storage/emulated/0/DCIM/Camera/20200319_162840.jpg