当前位置: 首页 > 知识库问答 >
问题:

android studio无法解码流:java.io.FileNotFoundException:

龙玄天
2023-03-14

我是Android Studio的新手,我正在努力使用其文件名而不是其ID加载图像。

public static Bitmap load(String name) {
    File dir = Environment.getExternalStorageDirectory();
    return BitmapFactory.decodeFile(dir + "/res/drawable/" + name + ".png");
}

到目前为止,我只知道这些,但它抛出了这个FileNotFoundException:

无法解码流: java.io.文件未找到异常: /存储/模拟/0/分辨率/可绘制/图像.png:打开失败: ENOENT (没有这样的文件或目录)

我还将这些权限添加到了Android清单中:

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

我真的不知道为什么它会抛出异常,我实际上使用哪个路径从可绘制文件夹中解码文件?

共有1个答案

卫建义
2023-03-14

您不能以这种方式加载可抽取资源。资源捆绑在apk中,它们不作为文件存储。您应该使用BitmapFactory。改为decodeResource

阅读这里:https://developer.android.com/reference/android/graphics/BitmapFactory.html#decodeResource(android.content.res.Resources, int)

 类似资料:
  • 如何解决它。请帮助我。提前谢谢。

  • 我有一个定义权限的文件。该代码适用于较低版本的android,但8.0及更高版本不适用。所以我明确地要求进行自我许可检查。这段代码昨天还在工作,但突然我再次获得了相同的权限拒绝错误。

  • 问题内容: 嘿,我不确定为什么每次选择图库中的图像时都会出现这种情况吗? 这是代码: 错误: 问题答案: 不要假设有文件路径。Android 4.4及更高版本即将删除它们。而且您获得的uri已经没有路径。 您仍然可以通过()或文件描述符访问文件内容。 在这里进行了解释:ContentProviders:打开一个文档(向下滚动,指向该节的链接似乎已损坏) 而且确实适用于较旧的android版本。

  • 我正在使用android Studio 0.8.2并希望将数据从文件读取到数组,但我得到了这个错误:无法解析符号FileUtils。错误在这一行: 我已经包括了commons-io-2.4。应用程序中的jar文件- 如果你需要更多信息,请告诉我。

  • 驴你看,我要添加截取到我的应用程序添加这行代码com.mcxioke。截取:库aar:1.0.0建立。gradle文件 我也试着添加改装。但它给出了相同类型的错误:未能解决:bla bla bla。 所以我认为在我的情况下gradle不能同步任何其他库不同于com.android....... 我也尝试将这行代码添加到我的build.gradle。但是什么都没有改变 请指教 编辑:添加注释后生成。