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

继承HiveObject的类导致build_runner构建失败,求解决方案

问题解决:继承HiveObject导致build_runner代码生成失败(错误type 'MixinElementImpl' is not a subtype of type 'ClassElement')

问题原因

这是Hive与json_serializable配合时的已知兼容性问题,核心原因是你错误地使用了extends继承HiveObject——HiveObject是一个mixin,不是普通类,不能用extends关键字,必须用with来混入。这种错误的继承方式会让build_runner的代码生成器在解析类结构时出现类型转换异常。

解决方案

  • 修正类的混入方式
    将代码中的extends HiveObject改为with HiveObject,修正后的示例代码:

    @HiveType(typeId: 3)
    @JsonSerializable()
    class CustomerModel with HiveObject{
      @HiveField(0)
      String? id;
      @HiveField(1)
      String? title;
      // 其他字段和方法
    }
    
  • 清理并重新执行构建
    执行以下命令清理旧的生成文件并重新构建:

    flutter pub run build_runner clean
    flutter pub run build_runner build
    
  • 版本兼容性检查
    如果上述步骤无效,检查相关依赖的版本是否匹配:

    • 确保hive、hive_flutter、hive_generator使用最新稳定版
    • 确保json_annotation、json_serializable、build_runner的版本符合pub.dev上的官方约束

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 06:35:19