我正在尝试在Flutter应用中显示图像。
我已经添加了一个images目录,并且在该目录中有一个名为iu.png的文件。
在pubspec.yaml中,我有:
assets:
- images/iu.png
在main.dart中,我有:
```
child: new Column(
children: <Widget>[
new Text('Image Demo'),
new Image.asset('images/iu.png'),
],
),
```
当我在Android或iOS模拟器中运行代码时,出现以下异常:
I / flutter(9252):IM图像资源服务引起的异常提示 ╞═════════════════════════════════════════════════ ═══我/颤振( 9252):抛出以下断言来解析图像编解码器: I / flutter(9252):无法加载资产:images / iu.png I / flutter( 9252):I / flutter(9252):引发异常时,这是 堆栈:I / flutter(9252):#0 PlatformAssetBundle.load (package:flutter / src / services / asset_bundle.dart:221:7)I / flutter( 9252):I / flutter(9252):#1
AssetBundleImageProvider._loadAsync (package:flutter / src / painting / image_provider.dart:427:44)I / flutter( 9252):I / flutter(9252):#2
AssetBundleImageProvider.load (包:flutter / src / painting / image_provider.dart:412:14)I / flutter( 9252):#3 ImageProvider.resolve ..(package:flutter / src / painting / image_provider.dart:266:86) I / flutter(9252):#4 ImageCache.putIfAbsent (package:flutter / src / painting / image_cache.dart:143:20)I / flutter( 9252):#5 ImageProvider.resolve。 (包:flutter / src / painting / image_provider.dart:266:63)I / flutter( 9252):(从dart:async包中删除了8帧)I / flutter(9252): I / flutter(9252):图片提供者:AssetImage(捆绑:null,名称: “ images / iu.png”)I / flutter(9252):图片密钥: AssetBundleImageKey(bundle:PlatformAssetBundle#54de0(),名称: “ images / iu.png”,比例尺:I /颤动(9252):1.0)I /颤动(9252): ══════════════════════════════════════════════════ ══════════════════════════════════════════════════
我正在使用最新的Flutter Master,Flutter Doctor输出为:
医生摘要(要查看所有详细信息,请运行flutter doctor -v):[✓] Flutter(Channel master,v0.10.2-pre.21,在Mac OS X 10.13.6 17G65上, 地区 zh-CN)[✓] Android工具链-为Android设备开发(Android SDK 28.0.3)[✓] iOS工具链-为iOS设备开发 (Xcode 10.0)[✓] Android Studio(版本3.2)[✓] IntelliJ IDEA Community Edition(版本2018.2.3)[✓]已连接的设备(2 可用)
有人有任何线索吗?
答案 0 :(得分:0)
我遇到了同样的问题,但是如果我将图像直接放在资产文件夹中,它的工作就可以了。在这种情况下,您还需要更改pubspec.yaml(资产:-ui.png),然后可以使用Image.asset('ui.png')加载图像。
答案 1 :(得分:0)
确保在pubspec.yaml中正确完成了缩进。 子类别应比其父类别缩进两个空格。 PS:破折号算作子类别中的第一个字符。 根据flutter文档,Adding assets and images的缩进应如下所示:
flutter:
assets:
- assets/my_icon.png
- assets/background.png
答案 2 :(得分:0)
指定图片路径如下
Image.asset("assets/images/car_android.png")
或
Image(image: AssetImage("assets/images/car_android.png"))
问题是 Flutter 无法识别您的图像的确切存储位置。
如果问题仍然存在,请尝试进行热重启,这将解决您的问题。
在此之前更新您的 pubspec.yaml 文件
如果您更新 pubspec.yaml 文件,然后运行 flutter pub get
来更新库,如果您的 IDE 没有自动更新它。