Flutter项目使用AssetImage加载assets目录图片无法显示问题求助
问题常见原因及对应解决方法
原因1:pubspec.yaml 配置格式错误
Flutter的pubspec.yaml对缩进规则要求极其严格,绝大多数资源加载失败都和配置缩进错误有关:
- assets字段必须放在
flutter字段的子层级下,和uses-material-design: true同级 - 配置路径的行必须比
assets字段再多缩进2个空格,禁止用Tab键缩进,统一使用空格
你提供的配置示例中存在路径不匹配、层级错误的问题,正确的配置格式如下:
flutter: uses-material-design: true # 正确缩进:assets前面2个空格,路径行前面4个空格 assets: - assets/images/
原因2:资源路径不匹配
- 确认你的图片实际存放路径为项目根目录下的
assets/images/drive.png,文件夹名称、文件名没有拼写错误 - 代码中
AssetImage的路径必须和实际存放路径完全一致,你写的路径是"assets/images/drive.png",所以配置的时候不能只写- images/,必须对应前缀为assets/images/
原因3:文件名大小写不匹配
Windows、macOS本地文件系统默认大小写不敏感,但是Android、iOS打包后的运行环境大小写敏感,如果实际文件名为Drive.png,代码中写drive.png就会加载失败,需要保证三者大小写完全一致:实际文件名、代码引用路径、pubspec配置路径。
原因4:资源未被打包进应用
修改pubspec.yaml配置后,必须执行flutter pub get命令,之后完全停止项目重新运行,不要使用热重载/热重启,新配置的资源才会被打包到应用中。
原因5:图片文件本身异常
确认图片文件没有损坏,后缀名和实际格式匹配,不要手动修改文件后缀名(比如把jpg文件直接改成png后缀)。
内容的提问来源于stack exchange,提问作者Mohammad Zakir Raza
相关产品推荐
相关产品推荐

