Flutter项目构建失败:TextTheme无subtitle1属性报错求助
错误详情
../../../.pub-cache/hosted/pub.dev/getwidget-2.1.1/lib/components/avatar/gf_avatar.dart:89:51: 错误:类'TextTheme'未定义getter 'subtitle1'。
'TextTheme'来自'package:flutter/src/material/text_theme.dart'('/Library/flutter/packages/flutter/lib/src/material/text_theme.dart')。请尝试将名称更正为现有getter的名称,或者定义一个名为'subtitle1'的getter或字段。
TextStyle? textStyle = theme.primaryTextTheme.subtitle1?.copyWith(
^^^^^^^^^
目标kernel_snapshot失败:异常
失败:构建因异常而终止。
出错原因:任务':app:compileFlutterBuildDebug'执行失败。
进程'command '/Library/flutter/bin/flutter''以非零退出值1结束
构建在13秒内失败错误:Gradle任务assembleDebug以退出代码1失败
解决步骤
1. 升级getwidget依赖包(推荐方案)
- 打开项目根目录下的
pubspec.yaml文件,找到getwidget依赖项,将版本号更新为最新兼容版本。例如:dependencies: getwidget: ^4.0.0 # 替换为实际最新稳定版 - 执行命令更新依赖:
flutter pub get
2. 临时修改依赖包源码(应急方案)
如果暂时无法升级包,可手动修改getwidget源码适配当前Flutter版本:
- 找到报错文件路径:
../../../.pub-cache/hosted/pub.dev/getwidget-2.1.1/lib/components/avatar/gf_avatar.dart - 定位到第89行,将
subtitle1替换为Flutter当前版本对应的属性(Flutter 3.x中subtitle1对应titleMedium):TextStyle? textStyle = theme.primaryTextTheme.titleMedium?.copyWith( - 注意:此修改会在下次执行
flutter pub get时被覆盖,仅作临时应急用。
3. 确认Flutter版本兼容性
执行以下命令查看当前Flutter版本,确保第三方包与Flutter版本匹配:
flutter --version
若使用Flutter 3.x及以上版本,必须使用支持Material 3的getwidget新版本。
内容的提问来源于stack exchange,提问作者Geoffroy Evane

