You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么Android assets的images目录存在设计时未主动放入的文件?

异常文件来源说明
  • 你看到的clock_font.png、android-logo-shine.png等不属于你的文件,是Android系统框架层内置在assets/images路径下的公共资源。
  • 系统提供的AssetManager.list()方法的实现逻辑,会同时扫描应用自身assets目录和系统内置assets目录下的对应路径,把两个路径下的文件合并后返回结果,所以你查询images目录时会把系统内置的文件也列出来。
  • 应用级别的AssetManager没有直接读取系统内置assets资源的权限,所以遍历到这些系统文件调用assetManager.open()时就会抛出FileNotFoundException。
  • 当你把自定义的assets子目录重命名为test后,系统内置assets目录下不存在同名的test路径,list()方法就只会返回你自己存放的资源,问题自然解决。
可选规避方案

如果不想修改原有目录名,可以用两种方式处理:

  • 遍历文件时捕获FileNotFoundException,直接跳过读取失败的系统资源即可,不影响你自己的文件复制逻辑。
  • 给自定义的assets子目录加专属前缀(比如命名为app_images),避免和系统内置的assets目录重名,从根源上避免冲突。

内容的提问来源于stack exchange,提问作者Android4Ever

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 05:27:03