升级Flutter SDK 3.22.0后项目编译失败,报错TextTheme无button属性
问题原因
Flutter 3.22.0(Dart 3.4.0)遵循Material 3设计规范,移除了TextTheme.button这个已废弃的API,替代为TextTheme.labelLarge。而你使用的rotation_stage:0.0.9依赖包尚未适配这个变更,仍在调用旧API,导致编译失败。
解决方案
1. 更新依赖包到兼容版本
查看rotation_stage是否有适配Flutter 3.22的更新版本,若有则修改pubspec.yaml中的依赖版本:
dependencies: rotation_stage: ^[最新兼容版本号]
执行flutter pub get后重新编译项目。
2. 手动修复依赖包代码(应急方案)
如果依赖包暂无更新,可临时修改本地缓存的包文件:
- 找到报错文件路径:
../../../../AppData/Local/Pub/Cache/hosted/pub.dev/rotation_stage-0.0.9/lib/src/rotation_stage_handle.dart - 定位到第37行,将:
修改为:style: Theme.of(context).textTheme.button?.copyWith(style: Theme.of(context).textTheme.labelLarge?.copyWith( - 保存文件后重新启动调试。
3. 降级Flutter SDK(临时规避)
若上述方案无法执行,可降级Flutter到之前能正常运行的版本(如3.19.x):
flutter downgrade 3.19.6
内容的提问来源于stack exchange,提问作者Antonis Ladianos
相关产品推荐
相关产品推荐

