尝试以抖动显示图像时发生异常

时间:2018-10-21 11:32:44

标签: dart flutter

我正在尝试在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   可用)

有人有任何线索吗?

3 个答案:

答案 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 没有自动更新它。