图像资源服务捕获的异常

Posted

技术标签:

【中文标题】图像资源服务捕获的异常【英文标题】:Exception caught by image resource service 【发布时间】:2019-12-24 00:23:24 【问题描述】:

运行以下代码时出现错误。

代码:

import 'package:flutter/material.dart';
void main()
  runApp(MyApp());

class MyApp extends StatefulWidget 
  @override
  _MyAppState createState() => _MyAppState();


class _MyAppState extends State<MyApp> 
  @override
  Widget build(BuildContext context) 
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('PITCH'),
        ),
        body: Column(
          children: <Widget>[
            new Text('WELCOME'),
            new Image(image: AssetImage('download.png'))
          ],
        ),
      ),

    );
  

错误:

flutter: ══╡ 图像资源服务发现异常╞═══════════════════════════════════════ ═════════════════ 颤振:抛出以下断言解析图像编解码器: 颤振:无法加载资产:download.png 扑: 颤振:抛出异常时,这是堆栈: 颤振:#0 PlatformAssetBundle.load(包:flutter/src/services/asset_bundle.dart:221:7) 扑: 颤振:#1 AssetBundleImageProvider._loadAsync (package:flutter/src/painting/image_provider.dart:464:44) 扑: 颤振:#2 AssetBundleImageProvider.load(包:flutter/src/painting/image_provider.dart:449:14) 颤振:#3 ImageProvider.resolve...(包:flutter/src/painting/image_provider.dart:316:48) 颤振:#4 ImageCache.putIfAbsent(包:颤振/src/painting/image_cache.dart:160:22) 颤振:#5 ImageProvider.resolve..(包:flutter/src/painting/image_provider.dart:316:25) 颤振:(从 dart:async 包中删除了 13 帧) 扑: 颤振:图像提供者:AssetImage(bundle:null,名称:“download.png”) 颤振:图像键:AssetBundleImageKey(捆绑:PlatformAssetBundle#ea200(),名称:“download.png”,规模: 颤振:1.0)

【问题讨论】:

确保停止应用进程,然后再次运行应用(完全启动) 【参考方案1】:

这可能是由于以下原因。

    您忘记在pubspec.yaml 文件中添加资产

    您忘记运行flutter packages get 命令。

    您对应用程序进行了热重启/重新加载。

【讨论】:

如果图片运行后需要通过设备动态加载怎么办? 很高兴听到它,不要忘记将答案标记为已接受。查看如何接受答案here 谢谢!这 - 你对应用程序进行了热重启/重新加载 - 拯救了我的一天!【参考方案2】:

确保以下几点:

您已在 pubspec.yaml 文件中声明了图像的完整路径。 在声明资产图片后运行flutter pub get。 在代码中编写完整路径,就像在 pubspec.yaml 中编写的一样。所以应该是'assets/download.png'

【讨论】:

以上是关于图像资源服务捕获的异常的主要内容,如果未能解决你的问题,请参考以下文章

颤振资产错误:图像资源服务捕获的异常

问题 - 将图像文件保存到 iphone 中的资源文件夹

如何使用颤振加载图像

Java异常处理

图像未在 Flutter 中加载

在 Java 中对资源使用 try 是不是安全 - 它是不是检查可关闭对象是不是不为空,是不是在尝试关闭它时捕获异常