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

Flutter升级后依赖报错:ThemeData无accentTextTheme属性

错误原因

升级Flutter后,你使用的time_picker_widget: ^1.0.0+10依赖了已被新版Flutter移除的ThemeData.accentTextTheme属性,导致编译失败。accentTextTheme是旧版Material Design 2中的属性,在适配Material 3的新版Flutter中已被废弃或重命名。

解决思路与方案

以下是几个可行的解决办法,按优先级推荐:

方案1:升级time_picker_widget到最新兼容版本

  • 打开你的pubspec.yaml,将time_picker_widget: ^1.0.0+10替换为该包的最新版本;
  • 执行命令:flutter pub upgrade time_picker_widget,完成后重新编译项目。

方案2:降级Flutter到兼容旧包的版本

如果暂时不想更换或升级包,可以将Flutter降级到仍支持accentTextTheme的稳定版本,比如Flutter 2.x系列:

  • 执行命令:flutter downgrade 2.10.5(可根据需求选择其他兼容的旧稳定版);
  • 等待降级完成后,重新运行项目。

方案3:手动修改缓存包代码(临时应急)

这个方法仅作为临时应急,因为下次执行flutter pub get或升级时修改会被覆盖:

  1. 定位到报错文件:C:/Users/sonal/AppData/Local/Pub/Cache/hosted/pub.dev/time_picker_widget-1.0.0+10/lib/time_picker_widget.dart;
  2. 找到第1377行的theme.accentTextTheme,替换为新版Flutter的替代属性,示例:
    // 替换为适配新版的文本主题
    theme.textTheme.apply(bodyColor: theme.colorScheme.secondary)
    
    也可根据实际UI需求选择theme.textTheme下的具体样式(如bodyLarge、bodyMedium);
  3. 保存文件后重新编译项目。

方案4:替换为维护活跃的时间选择器包

如果time_picker_widget长期未更新适配新版Flutter,建议替换为其他维护活跃的时间选择器组件,比如官方的showTimePicker,或者flutter_time_picker_spinner等包:

  • 在pubspec.yaml中移除time_picker_widget依赖,添加新的包;
  • 修改项目中使用时间选择器的代码,适配新组件的API。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 07:15:37