Dart Freezed包生成文件缺失toJson方法引发InvalidType错误
解决Freezed生成代码中
_$$AutonomyEventImplToJson未定义错误 以下是针对性的排查和解决步骤:
- 核对依赖配置
确保pubspec.yaml中的依赖完整且版本匹配:
dependencies: freezed_annotation: ^2.4.1 json_annotation: ^4.8.1 dev_dependencies: build_runner: ^2.4.6 freezed: ^2.4.6 json_serializable: ^6.7.1
注意:freezed和freezed_annotation的版本需保持兼容,建议使用官方推荐的最新兼容版本。
- 强制重新生成代码
执行带清理冲突参数的生成命令,彻底替换旧的生成文件:
flutter pub run build_runner build --delete-conflicting-outputs
纯Dart项目替换为:
dart run build_runner build --delete-conflicting-outputs
检查类定义细节
确认类写法符合规范:- 保留
@freezed注解即可(无需改为@Freezed(toJson: true),默认已支持序列化) part 'autonomy_event.freezed.dart';和part 'autonomy_event.g.dart';的路径与当前文件完全同名fromJson方法中的_$AutonomyEventFromJson拼写无误
- 保留
清理IDE缓存
在Android Studio中执行:File->Invalidate Caches...-> 勾选Clear file system cache and local history->Invalidate and Restart
解决IDE未识别新生成代码的缓存问题。排查版本兼容性
若上述步骤无效,尝试锁定稳定兼容的版本组合(比如freezed_annotation:2.4.0、freezed:2.4.0、json_serializable:6.6.2),重新执行生成命令。
内容的提问来源于stack exchange,提问作者Punpuf
相关产品推荐
相关产品推荐

