Flutter json_serializable 5.0.0 不能与 auto_route 一起使用
Posted
技术标签:
【中文标题】Flutter json_serializable 5.0.0 不能与 auto_route 一起使用【英文标题】:Flutter json_serializable 5.0.0 is not working along with auto_route 【发布时间】:2021-09-24 20:34:49 【问题描述】:将 json_serializable 库从 4.1.4 升级到 5.0.0 后出现以下错误
谁能解释我使用的版本有什么问题?
因为没有任何版本的 auto_route_generator 匹配 >2.1.0 =0.40.0 =0.40.0 =5.0.0 依赖于分析器 ^2.0.0,所以 auto_route_generator ^2.1.0 与 json_serializable >=5.0.0 不兼容。 所以,因为 carer_connect 依赖于 json_serializable ^5.0.0 和 auto_route_generator ^2.1.0,所以版本求解失败。 pub get failed (1; 所以,因为 carer_connect 依赖于 json_serializable ^5.0.0 和 auto_route_generator ^2.1.0,版本求解失败。)
这是我的pubspec.yaml
文件
name: demo
description: demo
publish_to: 'none'
version: 1.0.0+1
environment:
sdk: ">=2.12.0 <3.0.0"
dependencies:
flutter:
sdk: flutter
flutter_localizations:
sdk: flutter
cupertino_icons: ^1.0.2
dio: ^4.0.0
auto_route: ^2.2.0
json_serializable: ^5.0.0
dev_dependencies:
flutter_test:
sdk: flutter
flutter_lints: ^1.0.0
build_runner:
auto_route_generator: ^2.1.0
flutter:
uses-material-design: true
generate: true
assets:
- assets/icons/
- assets/config/
【问题讨论】:
这有什么更新吗? @cubanGuy 我在下面添加了一个解决方案。请检查这是否解决了您的问题。 【参考方案1】:试试这个代码
json_serializable: any
我希望这会奏效。
【讨论】:
使用any
不是一个好习惯,尤其是在生产中。 dart.dev/tools/pub/dependencies【参考方案2】:
这一步和我一起工作
1 - 在 pubspec.yaml 文件中添加依赖项
dio: ^4.0.0
json_serializable: ^4.1.4
json_annotation: ^4.0.1
2-运行此命令重置版本
dart pub upgrade --null-safety
【讨论】:
【参考方案3】:发生这种情况是因为 auto_route_generator
在该包内部依赖于 json_serializable: ^4.1.4
,但您在外部使用 json_serializable
并且两种情况下使用的版本不匹配,因此出现错误,
对此的一种解决方案是,您可以同时使用这两个版本,并在 dependencies:
中提及一个版本,在 dependency_overrides:
中提及另一个版本,如下所示:
dependencies:
...
json_serializable: ^5.0.0
...
dependency_overrides:
...
json_annotation: ^4.0.1
json_serializable: ^4.1.4
...
并且问题应该得到解决。如果出现任何进一步的复杂情况,您可以随时检查软件包内部 pubspec.yaml
中使用的版本,并将它们添加为代码中的 dependency_overrides:
。
【讨论】:
以上是关于Flutter json_serializable 5.0.0 不能与 auto_route 一起使用的主要内容,如果未能解决你的问题,请参考以下文章
Flutter:使用 json_serializable 将 json 转换为模型时出现问题
在flutter中使用json_serializable对json对象进行反序列化
Flutter - json_serializable fromJson:在 null 上调用了方法“[]”
如何编写像json_serializable这样的flutter构建器