Flutter本地资源图片加载失败求助,网络图片可正常显示
问题详情
- 本地资源图片无法加载,网络图片正常显示
- 使用代码:
const Image(image: AssetImage('images/logo.png')), - 抛出错误:
EXCEPTION CAUGHT BY IMAGE RESOURCE SERVICE ╞════════════════════════════════════════════════════
I/flutter ( 6396): The following assertion was thrown resolving an image codec:
I/flutter ( 6396): Unable to load asset: "images/logo.png".
I/flutter ( 6396): Exception: Asset not found
I/flutter ( 6396):
I/flutter ( 6396): When the exception was thrown, this was the stack:
I/flutter ( 6396): #0 PlatformAssetBundle.loadBuffer (package:flutter/src/services/asset_bundle.dart:369:7)
I/flutter ( 6396):
I/flutter ( 6396): #1 AssetBundleImageProvider._loadAsync (package:flutter/src/painting/image_provider.dart:811:18)
I/flutter ( 6396):
I/flutter ( 6396):
I/flutter ( 6396): Image provider: AssetImage(bundle: null, name: "images/logo.png")
I/flutter ( 6396): Image key: AssetBundleImageKey(bundle: PlatformAssetBundle#daa66(), name: "images/logo.png", scale:
I/flutter ( 6396): 1.0)
══════════════════════════════════════════════════════════════════════════════════════════════
- 资源结构:项目根目录下存在
images文件夹,内含logo.png - pubspec.yaml已配置资源路径
排查与解决步骤
1. 修正pubspec.yaml格式
Flutter对yaml配置的缩进和格式要求严格,确保配置如下(缩进保持一致,通常2或4个空格):
flutter: assets: - images/logo.png # 若需引入整个images文件夹,可改为: # - images/
- 检查冒号后是否有空格,路径无多余空格
- 修改后必须重启应用,热重载无法加载新配置的资源
2. 校验路径与文件名
- 路径和文件名区分大小写,比如
Logo.png和logo.png会被视为不同文件 - 确认图片确实放在项目根目录的
images下,而非嵌套子目录
3. 清理缓存重建项目
执行以下命令彻底清理并重建:
flutter clean flutter pub get flutter run
4. 简化图片引用写法
替换原有代码为更简洁的Image.asset:
const Image.asset('images/logo.png'),
该写法与AssetImage功能一致,可规避部分路径配置细节问题
5. 检查图片文件完整性
- 替换
logo.png为另一张正常图片测试,排除文件损坏问题 - 确保图片格式为Flutter支持的类型(PNG、JPG、GIF等)
内容的提问来源于stack exchange,提问作者Bruno Ganontha Payang

