我正在尝试通过Uri将图像上传到imageview,这是行不通的。
java.io.FileNotFoundException: /file:/data/user/0/com.maksu.aquarium/cache/cropped6681458112782885202.jpg (No such file or directory)
这是我上传照片的方式:
Uri profileUri = Uri.fromFile(new File("file:///data/user/0/com.maksu.aquarium/cache/cropped6681458112782885202.jpg"));
Glide.with(this).load(profileUri).into(akvaryumDialogResim);
答案 0 :(得分:2)
首先,永远不要硬编码路径。为了这个答案的目的,我会坚持使用您的硬编码值,但是您确实需要一种更好的方式来处理文件。例如,对于许多用户而言,您的硬编码路径将是错误的。
第二,file:///data/user/0/com.maksu.aquarium/cache/cropped6681458112782885202.jpg
不是文件系统路径。它是Uri
。 Android基于Linux,其文件系统路径以/
开头。 file://
是Uri
方案,非常类似于此网页的URL中使用的https://
是Uri
方案。
因此,可以使用:
Uri profileUri = Uri.parse("file:///data/user/0/com.maksu.aquarium/cache/cropped6681458112782885202.jpg");
或使用:
Uri profileUri = Uri.fromFile(new File("/data/user/0/com.maksu.aquarium/cache/cropped6681458112782885202.jpg"));
答案 1 :(得分:2)
要访问缓存文件夹中的文件,可以使用Context.getCacheDir()
方法,而不是硬编码完整路径。因此,尝试:
Uri profileUri = Uri.fromFile(new File(geCacheDir(), "cropped6681458112782885202.jpg"));
Glide.with(this).load(profileUri).into(akvaryumDialogResim);