Flutter加载Asset图片报错:无法找到指定资源的问题咨询
Flutter Asset图片加载失败(未找到资源)解决方案
问题现象
图片资源服务捕获到异常
解析图片编解码器时抛出以下断言:
无法加载资源:"dice-six-faces-one.png"。
异常:未找到资源
抛出异常时的调用栈:
#0 PlatformAssetBundle.loadBuffer (package:flutter/src/services/asset_bundle.dart:369:7)
排查解决步骤
校验pubspec.yaml的资源配置
确保flutter节点下正确声明了assets路径,yaml语法严格注意缩进(用空格,别用tab):flutter: assets: - assets/dice-six-faces-one.png # 若需加载整个目录下的资源,可写:- assets/注意
assets是flutter的子节点,每个资源项前的-要和父节点对齐。核对文件实际路径与名称
- 确认图片文件确实存在于项目对应路径中,比如配置的是
assets/dice-six-faces-one.png,则项目根目录必须有assets文件夹,且内部包含该图片。 - 文件名大小写完全匹配:iOS、macOS等平台对文件名大小写敏感,
Dice-Six-Faces-One.png和dice-six-faces-one.png会被识别为不同文件。
- 确认图片文件确实存在于项目对应路径中,比如配置的是
执行flutter pub get更新资源索引
修改pubspec.yaml后必须运行flutter pub get,让Flutter重新扫描并注册资源文件,这一步很容易遗漏。清理缓存并重启项目
若上述步骤无效,尝试清理缓存解决资源缓存问题:- 运行
flutter clean清理项目缓存 - 重新执行
flutter pub get - 重启IDE和模拟器/真机,避免旧缓存干扰。
- 运行
检查代码中的加载路径
确保加载图片时的路径与pubspec配置完全一致,示例代码:Image.asset('assets/dice-six-faces-one.png')路径层级不能多写或少写,比如直接写
dice-six-faces-one.png或错误层级assets/images/dice-six-faces-one.png都会导致资源找不到。
内容的提问来源于stack exchange,提问作者H Anas Khalil
相关产品推荐
相关产品推荐

