You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Edge调试Flutter应用首次运行抛ImageCodecException重启后恢复

Flutter Web(Edge调试)首次加载网络图片抛出ImageCodecException的原因分析

异常信息

══╡ EXCEPTION CAUGHT BY IMAGE RESOURCE SERVICE ╞════════════════════════════════════════════════════
The following ImageCodecException was thrown resolving an image codec:
Failed to load network image.
Image URL: https://i.ytimg.com/vi/eCx7dzYqb98/maxresdefault.jpg
Trying to load an image from another domain? Find answers at:
https://flutter.dev/docs/development/platform-integration/web-images
When the exception was thrown, this was the stack
Image provider: CachedNetworkImageProvider("https://i.ytimg.com/vi/eCx7dzYqb98/maxresdefault.jpg",
scale: 1)
 Image key: CachedNetworkImageProvider("https://i.ytimg.com/vi/eCx7dzYqb98/maxresdefault.jpg",
scale: 1):
  CachedNetworkImageProvider("https://i.ytimg.com/vi/eCx7dzYqb98/maxresdefault.jpg", scale: 1)
════════════════════════════════════════════════════════════════════════════════════════════════════
Another exception was thrown: ImageCodecException: Failed to load network image.
Another exception was thrown: ImageCodecException: Failed to load network image.

异常原因分析

  • 浏览器跨域校验延迟:Edge浏览器首次加载Flutter Web应用时,对跨域图片的CORS校验存在延迟,首次请求图片时校验未完成就尝试解码,导致抛出异常。重启后浏览器缓存了CORS校验结果,后续请求可正常加载;而移动端模拟器没有浏览器的跨域限制逻辑,因此无此问题。
  • 初始化阶段资源加载竞争:首次启动Flutter Web应用时,应用初始化逻辑与图片加载请求存在资源竞争,图片请求在Flutter网络处理模块完全就绪前发起,导致加载失败。重启后应用初始化完成,资源加载流程稳定,图片即可正常加载。
  • 缓存模块首次初始化问题:你使用的CachedNetworkImageProvider在首次启动时,本地缓存未建立,同时网络请求处理逻辑未完全初始化,导致图片加载失败。重启后缓存模块就绪或已缓存请求结果,加载恢复正常。

内容的提问来源于stack exchange,提问作者Kvu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 13:01:07