Image 未加载颤振图像(例外:解析图像编解码器)

Image 未加载颤振图像(例外:解析图像编解码器),image,dart,flutter,codec,Image,Dart,Flutter,Codec,当我尝试运行图像资源时,如果没有正确加载,我会遇到一个异常: 解析图像编解码器时引发了以下断言:无法加载资产:/images/p8.png` 几周前它还在工作,现在停止了。我试着从不同的pc和mac上运行(使用模拟器),但仍然无法加载图像。而是正确加载字体 这就是我加载图像的方式,它们在GridView 代码如下: return new Expanded( child: new GridView.count( crossAxisCount: 2,

当我尝试运行图像资源时,如果没有正确加载,我会遇到一个异常:

解析图像编解码器时引发了以下断言:无法加载资产:/images/p8.png`

几周前它还在工作,现在停止了。我试着从不同的pc和mac上运行(使用模拟器),但仍然无法加载图像。而是正确加载字体

这就是我加载图像的方式,它们在
GridView
代码如下:

return new Expanded(
      child: new GridView.count(
          crossAxisCount: 2,
          padding: const EdgeInsets.fromLTRB(16.0, 25.0, 16.0, 4.0),
          children: <Widget>[
            new MaterialButton(
              onPressed: () {
                Navigator.of(context).pushNamed('/biliardo');
              },
              child: new Column(
                children: <Widget>[
                  new Image(
                    //parte importante, definire gli asset per trovarli più velocemnte
                    //si inseriscono nel pubspec.yaml
                    image: new AssetImage('/images/p8.png'),
                    height: 100.0,
                    width: 100.0,
                  ),
                  new Text(
                    "BILIARDO",
                    style: new TextStyle(
                      color: (darkTheme) ? Colors.blue : Colors.black,
                    ),
                  )
                ],
              ),
            ),

            .....

    );
日志 颤振分析

Analyzing D:\Android\AndroidStudioProjects\flutter_app...
No issues found!
Ran in 5.2s
颤振-v跑

https://docs.google.com/document/d/133Z7029VGJXBDCYLgCrj09F9cLbvIQQ5X8yBS4pPC7I/edit?usp=sharing
颤振医生 颤振医生-v

[√] Flutter (Channel beta, v0.3.1, on Microsoft Windows [Versione 10.0.16299.371], locale it-IT)
    • Flutter version 0.3.1 at C:\Program Files\Flutter\flutter
    • Framework revision 12bbaba9ae (12 days ago), 2018-04-19 23:36:15 -0700
    • Engine revision 09d05a3891
    • Dart version 2.0.0-dev.48.0.flutter-fe606f890b

[√] Android toolchain - develop for Android devices (Android SDK 27.0.3)
    • Android SDK at C:\Users\Zanini\AppData\Local\Android\sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-27, build-tools 27.0.3
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b02)
    • All Android licenses accepted.

[√] Android Studio (version 3.1)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin version 24.0.1
    • Dart plugin version 173.4700
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b02)

[√] Connected devices (1 available)
    • Nexus 5X • 01cde5e7db8d4c14 • android-arm64 • Android 8.1.0 (API 27)

• No issues found!

去掉png路径中的前导
/
。它应该是
images/p8.png

也可以考虑使用清洁器<代码>图像.Fase构造函数,例如:


new Image.asset('images/p8.png',宽度:100.0,高度:100.0)

使用新的flatter版本,您还可以在pubspec.yaml中放置文件夹,而不仅仅是文件

flutter:
  uses-material-design: true
  assets:
    - images/

在所有映像路径中正确添加“/”

在安卓工作室


工具->颤振->颤振清理

需要注意的一点是“资产:”标记必须与“颤振:”标记正确缩进,但加载资产时,它只会偶尔抛出一个错误。所以这是行不通的:

flutter: 
assets:
    - images/
但这将:

flutter: 
  assets:
    - images/

除了目录路径之外,请确保您的图像有效,我还有一个不受支持的png文件导致了此错误。。只需确保在任何图像查看器中打开图像以确认文件是否受支持…

我是在Windows 10上开发的,而不是MAC OS X或Linux。我遇到了相同的问题…事实上,我的解决方案只是将类似unix的路径分隔符:'/'更改为Windows环境中的路径分隔符:'\飞镖/颤振锉

因此在pubspec.yaml images/mypicture.jpg中 在dart文件中:在实例化对象时:

子级新图像.asset('Images\\mypicture.jpg')

双反斜杠:\\太长,请转义\字符

希望它能帮助许多基于Windows平台的开发者使用Flitter


这使得它可以在Android emulator上运行,但在物理移动设备上,我想在打包之前,您需要使用斜杠以另一种方式进行更改。
尝试两种方式…

除了其他问题之外,在添加新图像资产时,需要冷重新加载以显示新资产。如果这没有帮助,
颤振清理
应该可以解决问题。

转到工具->颤振->颤振清理 然后重新运行项目(不是热重新加载)

通过这两个步骤,我能够解决相同的问题。如果pupspec.yaml文件按规则缩进

  • 关闭模拟器

  • 在终端中键入“颤振清洁”(无报价)

  • 再次运行你的应用程序

  • 这对你很好


  • 不太确定,但可以解决问题:

    • 如果一个小部件使用根目录,而另一个小部件使用子目录,则通常会导致编解码器问题

    • 避免在pubspec.yaml文件中使用子目录(例如“-images/”),例如,避免使用:

      flutter:   
        uses-material-design: true
      
        assets:
          - images/ 
      
    代替使用:


    请确保在pubspec.yaml文件中包含该资产,如下所示

         # To add assets to your application, add an assets section, like this:
      assets:
        - assets/images/icon-48.png
        - assets/images/icon-480.png
        - assets/images/icon-400.png
        - assets/images/qr.png
        - assets/images/bulb.png
        - assets/images/google_logo.png
    

    要向应用程序添加资产,请添加资产部分,如下所示:

      assets:
        - assets/test.jpeg
    

    你应该只使用文件夹名作为资产,因为它的默认值是flatter
    ImageProvider
    类,然后在终端上键入
    flatter clean
    ,然后重新启动应用程序。同样的事情发生在我身上,我花了近两个小时看到错误,答案非常简单

    在assets目录中,我忘记输入正斜杠(
    /
    ),因为我不想加载图像


    哪个目录包含
    图像
    目录?仍然没有回答
    图像
    目录在哪里的问题。它们位于project root的images文件夹中,很抱歉回复太晚。您是否在加载图像的代码中使用下面答案中指出的前导
    /
    (即使升级后也无法执行此操作。引入了什么版本?您能建议使用“图像查看器”吗?我自己使用Windows图像查看器。我有一个正常的.png文件,可以作为图像文件打开,但Flatter会抛出此问题(例外:解析图像编解码器)。我将其导出到.jpg,然后Flatter将其显示。我想知道Flatter支持哪些编解码器,以及如何为.png文件类型下的所有标准编解码器提供支持。对我来说,奇怪的是,有时加载了我的png,但其他则没有加载。它往往会引发此异常,尤其是在应用程序运行的开始阶段。这是大多数oth的情况er答案已经说明。重复的答案不应发布并将被删除。最好使用
    代码块
    而不是图像来共享代码片段。使用代码块,代码片段可以轻松阅读和共享。如果您可以解释您的答案如何或为什么解决此问题,也会很有帮助。以下是有关如何编写的其他提示好答案
         # To add assets to your application, add an assets section, like this:
      assets:
        - assets/images/icon-48.png
        - assets/images/icon-480.png
        - assets/images/icon-400.png
        - assets/images/qr.png
        - assets/images/bulb.png
        - assets/images/google_logo.png
    
      assets:
        - assets/test.jpeg