Flutter运行开源项目money_manager编译失败,求助解决方案
Flutter开源项目money_manager编译失败的解决方法
报错信息
警告:/C:/src/flutter/.pub-cache/hosted/pub.dartlang.org/fl_chart-0.40.2/lib/src/chart/pie_chart/pie_chart.dart:42:20: Warning: Operand of null-aware operation '?.' has type 'WidgetsBinding' which excludes null.
- 'WidgetsBinding' is from 'package:flutter/src/widgets/binding.dart' ('/C:/src/flutter/packages/flutter/lib/src/widgets/binding.dart').
package:flutter/…/widgets/binding.dart:1
WidgetsBinding.instance?.addPostFrameCallback((_) {
^错误:/C:/src/flutter/.pub-cache/hosted/pub.dartlang.org/platform-3.0.2/lib/src/interface/local_platform.dart:46:19: Error: Member not found: 'packageRoot'.
io.Platform.packageRoot; // ignore: deprecated_member_use
Failed to compile application.
解决步骤
1. 修复platform包的packageRoot错误
该错误源于platform:3.0.2依赖调用了Flutter已移除的废弃API,需升级到兼容版本:
- 打开项目根目录的
pubspec.yaml,添加依赖覆盖:dependency_overrides: platform: ^3.1.0 - 执行命令更新依赖:
flutter pub get
2. 修复fl_chart的空安全警告
旧版fl_chart:0.40.2的空安全写法与高版本Flutter不兼容,升级包即可解决:
- 在
pubspec.yaml的dependencies块中更新fl_chart版本:dependencies: fl_chart: ^0.65.0 # 可选择更高的兼容稳定版本 - 再次执行
flutter pub get同步依赖
3. 清理缓存重新编译(可选)
若上述操作后仍有异常,执行以下命令清理缓存后重试:
flutter clean flutter pub get flutter run
内容的提问来源于stack exchange,提问作者NorthernEagle
相关产品推荐
相关产品推荐

