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

Flutter中使用Hive存储对象列表时build_runner构建失败求助

问题描述

我尝试在Flutter中使用Hive存储对象列表,我的ChatModel(chat_model.dart)类代码如下:

import 'package:flutter/material.dart';
import 'package:hive_flutter/hive_flutter.dart';

part 'chat_model.g.dart';

@immutable
@HiveType(typeId: 1)
class ChatModel extends HiveObject {
  @HiveField(0)
  final String id;
  @HiveField(1)
  final String message;
  @HiveField(2)
  final bool isMe;

  ChatModel(
      {required this.id, required this.message, required this.isMe});
}

执行命令flutter packages pub run build_runner build --delete-conflicting-outputs时,出现错误:

[SEVERE] Nothing can be built, yet a build was requested.
且chat_model.g.dart文件无法生成,请问有什么解决建议吗?

解决建议
  • 核对依赖配置:确保pubspec.yaml中已添加所有必要依赖,执行flutter pub get同步:
    dependencies:
      hive: ^2.2.3
      hive_flutter: ^1.1.0
    dev_dependencies:
      build_runner: ^2.4.4
      hive_generator: ^1.1.5
    
  • 检查文件路径与命名:chat_model.dart和待生成的chat_model.g.dart必须在同一目录,part 'chat_model.g.dart';的路径、大小写要完全匹配实际文件名。
  • 清理缓存后重建:删除项目根目录下的.dart_tool文件夹,依次执行flutter clean、flutter pub get,再重新运行构建命令。
  • 验证注解正确性:@HiveType(typeId: 1)的typeId不能与其他Hive实体重复,所有字段必须正确标记@HiveField且序号唯一,类需正确继承HiveObject。
  • 切换到watch模式排查:使用flutter packages pub run build_runner watch --delete-conflicting-outputs命令,实时监听文件变化,获取更详细的错误提示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 00:15:10