Flutter旧项目编译错误求助:TypeMatcher等依赖兼容问题
解决Flutter旧项目中flutter_circular_chart包的编译错误
针对你遇到的三个编译错误,直接修改该第三方包的源码即可解决,具体步骤如下:
1. 修复ancestorStateOfType与TypeMatcher错误
打开路径C:/src/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_circular_chart-0.1.0/lib/src/animated_circular_chart.dart,定位到第122行:
.ancestorStateOfType(const TypeMatcher<AnimatedCircularChartState>());
替换为:
.findAncestorStateOfType<AnimatedCircularChartState>();
说明:Flutter后续版本废弃了
ancestorStateOfType方法和TypeMatcher类,改用泛型方法findAncestorStateOfType<T>直接指定目标类型即可实现相同逻辑。
2. 修复TextTheme.body2错误
在同一个文件中找到第221行:
widget.labelStyle ?? Theme.of(context).textTheme.body2;
替换为:
widget.labelStyle ?? Theme.of(context).textTheme.bodyMedium;
说明:Material Design 3迭代后,Flutter的
TextTheme体系进行了命名规范调整,原body2被重命名为bodyMedium。
3. 防止依赖更新重置修改
如果担心后续执行flutter pub get或flutter pub upgrade会覆盖你修改的源码,可以将修改后的包迁移到项目本地:
- 在项目根目录新建
packages文件夹,把修改好的flutter_circular_chart-0.1.0整个文件夹复制进去 - 修改项目
pubspec.yaml中的依赖配置:
dependencies: flutter_circular_chart: path: ./packages/flutter_circular_chart-0.1.0
完成以上操作后,重新执行flutter pub get,再编译项目即可解决所有报错。
内容的提问来源于stack exchange,提问作者saad ali
相关产品推荐
相关产品推荐

