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

升级Flutter至2.5.0后出现TextTheme无title、MediaQuery无nullOk报错如何解决

问题根因

你列出的几个过时传递依赖和本次报错完全无关,报错的根源是你项目依赖的flutter_widgets:0.1.12包停止维护多年,未适配Flutter 2.5版本的两处API破坏性变更:

  1. Flutter 2.2及以上版本移除了MediaQuery.of方法的nullOk参数,替换为独立的MediaQuery.maybeOf方法
  2. Flutter 2.0及以上版本彻底移除了TextTheme类中废弃的title、subhead属性,对应替换为headline6、subtitle1

可选解决方案

方案1:替换依赖(最推荐)

flutter_widgets包已有3年以上未更新,完全不兼容新版Flutter,建议查找对应功能的维护中替代包,替换原有依赖后执行flutter clean重新编译即可。

方案2:本地覆盖修复(过渡使用)

如果暂时不想调整业务逻辑替换依赖,可以通过pub的依赖覆盖规则临时修复问题:

  1. 在项目根目录新建local_packages/flutter_widgets文件夹,将pub缓存中报错的flutter_widgets-0.1.12版本源码整体复制到该路径
  2. 修改两处报错源码:
    • 打开lib/src/tagged_text/tagged_text.dart第295行,将MediaQuery.of(context, nullOk: true)修改为MediaQuery.maybeOf(context)
    • 打开lib/src/feature_discovery/src/overlay_widgets.dart,将第239行的theme.title改为theme.headline6,第248行的theme.subhead改为theme.subtitle1
  3. 在项目pubspec.yaml中添加依赖覆盖配置:
dependency_overrides:
  flutter_widgets:
    path: ./local_packages/flutter_widgets
  1. 执行flutter clean后重新运行项目即可。

方案3:降级Flutter版本(不推荐)

如果不需要使用新版Flutter特性,可将本地Flutter版本回退到开发时的1.x版本,无需修改代码即可正常运行,仅适合短期临时使用。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 03:18:04