跟随Flutter Firebase登录示例遇BlocBase类'ut'未定义错误求助
解决BlocBase中'rethrow'关键字错误与'ut'未定义问题
问题重现
跟随Flutter Firebase登录示例开发时,运行应用出现两个编译错误:
'rethrow' can't be used as an identifier because it's a keywordThe getter 'ut' isn't defined for the class 'BlocBase<State>'
切换flutter_bloc版本至8.1.0、8.0.1后问题仍存在。
解决方案
这些错误是由于pub缓存中的bloc包文件损坏或被篡改导致的,按以下步骤修复:
清理并重新获取依赖
- 执行命令清除项目构建缓存:
flutter clean - 删除项目根目录下的
pubspec.lock文件 - 重新拉取所有依赖:
flutter pub get
- 执行命令清除项目构建缓存:
手动删除损坏的bloc缓存包
错误提示指向pub缓存中的bloc-8.1.0包,找到对应目录(如../../../../snap/flutter/common/flutter/.pub-cache/hosted/pub.dartlang.org/bloc-8.1.0/),直接删除整个bloc-8.1.0文件夹,然后再次执行flutter pub get重新下载完整的bloc包。明确锁定bloc包版本
在pubspec.yaml中直接指定bloc包版本,确保与flutter_bloc版本匹配(flutter_bloc 8.1.1依赖bloc ^8.1.0):dependencies: cupertino_icons: ^1.0.5 equatable: ^2.0.5 flow_builder: ^0.0.9 flutter: sdk: flutter bloc: ^8.1.0 flutter_bloc: ^8.1.1 flutterfire_ui: ^0.4.3+10 font_awesome_flutter: ^10.2.1 form_inputs: path: ../packages/form_inputs formz: ^0.4.1 google_fonts: ^3.0.1 meta: ^1.8.0之后执行
flutter pub get确保依赖版本一致。对比示例项目代码
如果以上步骤无效,直接克隆官方示例项目的最新代码,对比本地项目的依赖配置和文件,排查是否存在本地代码修改导致的冲突。
原因说明
正常情况下,bloc包的BlocBase类中不存在ut属性,也不会出现ut.rethrow这种无效代码。该错误是由于pub缓存中的bloc包文件在下载或存储过程中损坏,或是被意外编辑,导致编译时出现语法错误。
内容的提问来源于stack exchange,提问作者Jacob Handaya
相关产品推荐
相关产品推荐

