android - OpenInputStream返回文件未找到异常但文件在那里

标签 android

我正在尝试从 SD 卡缩放位图并将其写入手机内存。然后在稍后将其解码以将其添加到 HashMap .

问题是我得到文件未找到异常,尽管路径正确并且缩放图像存在(我检查过)

这是保存部分

        Bitmap yourSelectedImage = BitmapFactory.decodeStream(imageStream, null, options );         
        File imageRootPath = getFilesDir();
        File imageRoot = new File(imageRootPath, imagUri.getLastPathSegment()+".png");
        FileOutputStream out = new FileOutputStream(imageRoot);
        yourSelectedImage.compress(Bitmap.CompressFormat.PNG, 90, out);

这是我阅读文件时的部分
try {
Uri mainImgeUri = Uri.parse(imageRoot.toString());
File imageFile = new File(mainImgeUri.toString());
if(imageFile.exists()){
   System.out.println("it does");
}
InputStream imageStream = ListPropertiesBaseActivity.this.getContentResolver().openInputStream(mainImgeUri); // I am getting file not found error

Bitmap yourSelectedImage =BitmapFactory.decodeStream(imageStream);
hmBitmap.put(ID, yourSelectedImage);
imageStream.close();
} catch (Exception e) {

e.printStackTrace();
}

难道是OpenInputStream无法从手机内存中读取?或者可能是保存后的图像不好?

虽然我可以通过手动浏览文件并打开它来查看它

请注意 System.out.Println 被执行所以这意味着文件存在

最佳答案

您是否尝试过记录 imageStream 以查看 uri 实际上是什么?

关于android - OpenInputStream返回文件未找到异常但文件在那里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15117670/

相关文章:

使用 Proguard 混淆后,Android 应用程序崩溃

android - 多传感器Android日志记录

android - Google Play 商店开发者控制台 : Unable to manage testers list for closed beta testing

android - 日志未发送到我的电子邮件

java - 如何正确写入 MifareUltralight NFC 标签?

Android okhttp 测量每个请求的 HTTP 设置时间

android - 我应该如何在Android Studio中为Gradle 4.5设置类路径

java - 安卓锁屏

android - Eclipse 在我的安卓手机上安装了我的应用程序两次

android - 持续 Toast 消息 : Toast won't disappear after execution