继承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
相关产品推荐
相关产品推荐

