调用IntegrationTestWidgetsFlutterBinding的watchPerformance方法提示未定义怎么解决?
问题原因
版本不匹配:watchPerformance 是 Flutter 2.10.0 及以上版本的 integration_test 包中才正式加入的公开API,出现该报错的核心原因是你本地使用的 Flutter SDK 版本低于 2.10.0,或是项目中单独指定的 integration_test 依赖版本过低,不包含该方法的实现。
解决方案
- 方案一:升级SDK和依赖(推荐)
- 执行升级命令将 Flutter SDK 升级到 2.10.0 及以上稳定版:
flutter upgrade - 升级完成后执行
flutter doctor检查开发环境状态正常 - 检查项目根目录下的
pubspec.yaml文件,确保integration_test依赖绑定SDK版本,不要固定低版本号,正确配置如下:
dev_dependencies: integration_test: sdk: flutter flutter_test: sdk: flutter- 执行
flutter pub get更新依赖,之后重启VS Code的Dart分析服务,即可消除语法报错。
- 执行升级命令将 Flutter SDK 升级到 2.10.0 及以上稳定版:
- 方案二:兼容低版本替代
如果暂时无法升级Flutter版本,可以用老版本对应的性能追踪方法tracePerformance直接替换watchPerformance即可,原有测试逻辑不需要修改,代码示例:await binding.tracePerformance(() async { await tester.fling(listFinder, Offset(0, -500), 10000); await tester.pumpAndSettle(); await tester.fling(listFinder, Offset(0, 500), 10000); await tester.pumpAndSettle(); }, reportKey: 'scrolling_summary');
内容的提问来源于stack exchange,提问作者Mbuso
相关产品推荐
相关产品推荐

