You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

跟随Flutter Firebase登录示例遇BlocBase类'ut'未定义错误求助

解决BlocBase中'rethrow'关键字错误与'ut'未定义问题

问题重现

跟随Flutter Firebase登录示例开发时,运行应用出现两个编译错误:

  • 'rethrow' can't be used as an identifier because it's a keyword
  • The getter 'ut' isn't defined for the class 'BlocBase<State>'
    切换flutter_bloc版本至8.1.0、8.0.1后问题仍存在。

解决方案

这些错误是由于pub缓存中的bloc包文件损坏或被篡改导致的,按以下步骤修复:

  1. 清理并重新获取依赖

    • 执行命令清除项目构建缓存:
      flutter clean
      
    • 删除项目根目录下的pubspec.lock文件
    • 重新拉取所有依赖:
      flutter pub get
      
  2. 手动删除损坏的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包。

  3. 明确锁定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确保依赖版本一致。

  4. 对比示例项目代码
    如果以上步骤无效,直接克隆官方示例项目的最新代码,对比本地项目的依赖配置和文件,排查是否存在本地代码修改导致的冲突。

原因说明

正常情况下,bloc包的BlocBase类中不存在ut属性,也不会出现ut.rethrow这种无效代码。该错误是由于pub缓存中的bloc包文件在下载或存储过程中损坏,或是被意外编辑,导致编译时出现语法错误。

内容的提问来源于stack exchange,提问作者Jacob Handaya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 19:30:50