开发中使用
Image.asset("assets/images/close.png")
加载本地图片,结果异常:
======== Exception caught by image resource service ================================================
The following assertion was thrown resolving an image codec:
Unable to load asset: assets/images/close.png
When the exception was thrown, this was the stack:
#0 PlatformAssetBundle.load (package:flutter/src/services/asset_bundle.dart:224:7)
<asynchronous suspension>
#1 AssetBundleImageProvider._loadAsync (package:flutter/src/painting/image_provider.dart:672:14)
<asynchronous suspension>
Image provider: AssetImage(bundle: null, name: "assets/images/close.png")
Image key: AssetBundleImageKey(bundle: PlatformAssetBundle#97ce7(), name: "assets/images/close.png", scale: 1.0)
====================================================================================================
解决办法:
Image.asset('assets/images/close.png', package: '你的模块名')
从以下几点排除:
1、检查工程的assets-images文件夹下是否有你的图片
2、检查yaml文件,是否声明了图片,如:
flutter:
assets:
- assets/images/close.png
注意缩进,否则异常
3、我这次遇到的问题,Image.asset需要指定包名,我因为多个模块依赖,其他模块也有本地图片的加载,所以在当前模块加载本地图片需要指定模块包名,这点网上大家一般都没人碰到提到,记录一下。