使用http库在Web端运行代码时出现completer7未定义错误
解决http库BrowserClient中'completer7'未定义的错误
问题场景
使用http库开发Flutter Web应用,在Chrome调试模式下运行时抛出编译错误:
/C:/Users/ashra/AppData/Local/Pub/Cache/hosted/pub.dev/http-1.1.0/lib/src/browser_client.dart:79:7: Error: The getter 'completer7' isn't defined for the class 'BrowserClient'.
- 'BrowserClient' is from 'package:http/src/browser_client.dart' ('/C:/Users/ashra/AppData/Local/Pub/Cache/hosted/pub.dev/http-1.1.0/lib/src/browser_client.dart').
Try correcting the name to the name of an existing getter, or defining a getter or field named 'completer7'.
completer7.completeError(
^^^^^^^^^^
解决方案
- 清理本地pub缓存并重新拉取依赖
依次执行以下命令:flutter clean flutter pub get - 升级http库至最新稳定版本
修改pubspec.yaml中的http依赖声明为最新版本,例如:
保存后执行dependencies: http: ^1.2.0flutter pub get更新依赖。 - 清除Web编译器缓存后重新构建
运行以下命令强制重新编译调试版本:flutter build web --debug --no-build-web-compiler-cache
原因说明
该错误并非http库的正常代码逻辑问题,通常是本地pub缓存损坏、依赖编译产物异常导致的文件内容错误,BrowserClient类原生不存在completer7这个属性,通过清理缓存、升级依赖可修复此异常。
内容的提问来源于stack exchange,提问作者Ashrafi Abir
相关产品推荐
相关产品推荐

