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

Flutter Web使用AssetImage加载图片抛出TypeErrorImpl错误求助

问题根因

你遇到的是Flutter 2.2.x稳定版在Web端的已知框架bug,根源是Dart Web开发环境的运行时类型检查逻辑,对AssetBundle结构化数据缓存中的泛型Future推断错误,缓存中存储的_Future<dynamic>类型和预期的Future<Map<String, List<String>>?>类型不匹配,触发了类型转换异常。
flutter clean无法解决的原因是该异常关联的是应用运行时的内存缓存,和本地构建缓存无关。你注释缓存判断代码的临时方案生效,本质是绕开了有类型错误的缓存读取逻辑,但会牺牲资源加载性能,不建议长期使用。

解决方案

按照优先级从高到低排序:

  • 升级Flutter稳定版到2.5.0及以上版本
    该bug已经在后续版本被官方修复,升级后不需要修改任何业务代码即可彻底解决问题,是最优方案。
  • 若暂时无法升级版本,可根据使用场景选择临时规避方案:
    1. 生产环境打包/运行时使用release模式,执行命令flutter run -d chrome --release,release模式下会关闭严格的运行时类型检查,不会触发该异常。
    2. 开发阶段可在应用入口主动清空结构化缓存规避错误,在main.dart中添加如下代码:
import 'package:flutter/services.dart';

void main() {
  // 清空AssetBundle结构化缓存规避类型转换异常
  (rootBundle as PlatformAssetBundle).structuredDataCache.clear();
  runApp(const MyApp());
}

另外你目前的资源路径配置和调用写法是正确的,不需要调整路径规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 01:45:03