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

Flutter AssetImage相对路径加载图片失败 绝对路径正常

问题原因

Flutter的AssetImage不会直接读取项目目录下的物理文件,所有需要通过Asset方式加载的本地资源,必须提前在项目根目录的pubspec.yaml中显式注册,没有注册的资源不会被打包进应用的资源包,运行时自然会抛出找不到资源的错误。
你用本地电脑的绝对路径能加载成功,是因为调试阶段Flutter可以直接读取你开发机上的磁盘文件,但这种写法完全不可用——等应用打包安装到手机、其他设备上时,你电脑上的本地路径在其他设备上根本不存在,图片依然会加载失败。

修复步骤
  • 打开项目根目录下的pubspec.yaml配置文件,找到flutter对应的配置块,YAML格式对缩进要求极其严格,配置时不要随意增减空格。
  • 在flutter节点下添加资源声明,和已有uses-material-design: true配置保持同级缩进,示例配置如下:
flutter:
  uses-material-design: true

  # 新增本地资源声明
  assets:
    - images/diamond.png

如果需要加载images文件夹下的所有图片,可以不用逐个写文件名,直接配置- images/即可。

  • 配置保存后,在终端执行flutter pub get命令同步配置,全量重启应用(不要用Hot Reload,热重载不会刷新资源配置表),此时原有代码里的AssetImage('images/diamond.png')就可以正常加载图片了。
常见踩坑提醒
  • 配置资源路径时注意大小写和实际文件夹、文件名完全一致,路径写错也会触发资源找不到的错误。
  • 不要在代码里硬编码本地绝对路径加载资源,这种写法在生产环境完全无效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 01:15:31