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