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

Flutter应用运行报错:类型转换不兼容问题咨询

问题描述

在Android Studio模拟器中运行Flutter应用时触发类型转换异常,错误信息如下:

[ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: type '() => Map<String, dynamic>' is not a subtype of type 'Map<String, dynamic>' in type cast
E/flutter ( 2949): #0      DatabaseUtils.getCloudQuestions (package:fragrancefinder/utils/DatabasUtils.dart:1282:50)
E/flutter ( 2949): <asynchronous suspension>

执行命令:

flutter run
解决方案

这个错误的核心是你把一个返回Map的函数直接强转为Map<String, dynamic>类型,而非调用该函数获取返回值。

检查DatabasUtils.dart第1282行的代码,通常是以下两种情况:

  • 引用了函数变量但未加括号调用,直接做类型转换:
    // 错误写法
    var result = someFunction as Map<String, dynamic>;
    
    修正为调用函数获取返回值:
    // 正确写法
    var result = someFunction() as Map<String, dynamic>;
    
  • 从数据库、缓存或其他数据源中取出的是函数类型对象而非预计算的Map,此时需要确保存储的是Map实例,或者取出后执行该函数得到Map。

如果涉及云数据库(如Firebase)操作,需确认数据读取逻辑是否正确,确保拿到的是实际的Map数据而非函数引用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 01:19:53