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

Flutter项目编译失败:TextTheme.body1未定义问题求助

解决Flutter项目因charts_flutter版本兼容导致的编译失败问题

嘿,这个问题我之前也碰到过,本质是旧版charts_flutter和你当前的Flutter版本不兼容导致的。具体来说:

/C:/src/flutter/.pub-cache/hosted/pub.dartlang.org/charts_flutter-0.11.0/lib/src/behaviors/legend/legend_entry_layout.dart:134:45: Error: The getter 'body1' isn't defined for the class 'TextTheme'.

这个错误是因为Flutter在后续版本中,把TextTheme里的body1重命名成了bodyLarge,而你用的charts_flutter:0.11.0还是在调用废弃的body1属性,所以编译报错。

给你两个可行的解决方案,优先选第一个:

方案一:升级charts_flutter到兼容版本

这是最稳妥的解决方式,步骤如下:

  1. 打开项目根目录下的pubspec.yaml文件
  2. 找到charts_flutter的依赖配置,把版本号更新为最新的兼容版本(比如改成charts_flutter: ^0.12.0,你也可以确认下当前最新的稳定版本)
  3. 执行命令:flutter pub get,重新拉取更新后的依赖
  4. 再次尝试构建项目

方案二:手动修改依赖包源码(临时救急,不推荐)

如果因为项目限制不能升级依赖,可以临时修改源码解决:

  1. 找到报错的文件路径:C:/src/flutter/.pub-cache/hosted/pub.dartlang.org/charts_flutter-0.11.0/lib/src/behaviors/legend/legend_entry_layout.dart
  2. 打开该文件,定位到第134行:
    color ??= Theme.of(context).textTheme.body1!.color;
    
  3. 把body1替换成bodyLarge,修改后代码如下:
    color ??= Theme.of(context).textTheme.bodyLarge!.color;
    
  4. 重新运行构建命令即可

注意:手动修改源码有个弊端,后续如果执行flutter pub get或者更新依赖,你的修改会被覆盖,所以还是优先选择升级依赖的方案。

内容的提问来源于stack exchange,提问作者177002013 Muthia Widya

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 12:12:32