android - java.io.FileNotFoundException :/storage/emulated/0/saved_images/grub. jpg:打开失败:ENOENT(没有这样的文件或目录)

标签 android

我正在使用下面的代码将图像保存在 sd 卡中,但我一直收到下面的异常

private void SaveImage(Bitmap finalBitmap,String filename) {

    String root = Environment.getExternalStorageDirectory().toString();
    File myDir = new File(root + "/saved_images");    
    myDir.mkdirs();

    String fname = filename;
    File file = new File (myDir, fname);
    if (file.exists ()) file.delete (); 
    try {
           FileOutputStream out = new FileOutputStream(file);
           finalBitmap.compress(Bitmap.CompressFormat.JPEG, 90, out);
           out.flush();
           out.close();

    } catch (Exception e) {
           e.printStackTrace();
    }
}

我在这里遗漏了什么吗?

最佳答案

如果您在 Android 版本 10 中遇到此问题,请打开 list 文件并将此行添加到您的应用程序标签中。

<application android:requestLegacyExternalStorage="true" .....>

这个问题是因为在 Android 10 中引入了范围存储。并确保您在 list 中添加权限请求并从用户那里获取运行时权限。在最新的 Android 版本中,您需要获得用户的运行时许可。

关于android - java.io.FileNotFoundException :/storage/emulated/0/saved_images/grub. jpg:打开失败:ENOENT(没有这样的文件或目录),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27372833/

相关文章:

android - 如何通过 YouTube API 获取特定用户上传的所有视频

android - 我应该在 MVVM 中的哪里链接多个网络请求?存储库的用例?

android - 为什么使用 Dagger 2 HasActivityInjector?

android - 如何在框架布局的中心屏幕上设置 ProgressBar?

android - 当我升级到 play-services-ads :name ="com.google.android.gms.version" . 0.0 时,我可以删除 &lt;meta-data android :17. .."/> 吗?

java - android.R错误

java - 生成多个 R.java 并将它们组合起来?

android - 使用 Google Map V2 并打开虚拟键盘时 Android EditText 上的黑色矩形

android - 尽管我已获得许可,但无法连接到互联网

微调器的android屏幕方向处理