(注)当該事象は、現時点では解消しています。
jsonデータとDartのモデルクラスを変換させる際に使うパッケージである「json_serializable」と「json_annotation」ですが、2021年7月末時点で両パッケージを最新版同士(json_serializableは5.0.0、json_annotationは4.1.0)を使おうとすると
Because every version of flutter_test from sdk depends on meta 1.3.0 and json_annotation >=4.1.0 depends on meta ^1.4.0, flutter_test from sdk is incompatible with json_annotation >=4.1.0. So, because news_feed depends on both json_annotation ^4.1.0 and flutter_test any from sdk, version solving failed. pub get failed (1; So, because news_feed depends on both json_annotation ^4.1.0 and flutter_test any from sdk, version solving failed.) Process finished with exit code 1
という謎のエラー発生します。
これは
FlutterのSDKに入っている「flutter_test」パッケージが「meta」というパッケージの1.3.0を使っている(依存している)のに対し、「json_annotation」は「meta」パッケージの1.4.0を使っているので、両者のパッケージの整合性が取れないのでダメ
という意味ですが、「flutter_test」はFlutterのSDKに組み込まれているパッケージで、こちらではバージョンの変更ができないので、「json_annotation」の方を最新版の1つ手前
4.1.0 => 4.0.1
にしてやると、今度はこんなエラーが出てしまいます。
Because json_serializable >=5.0.0 depends on json_annotation >=4.1.0 <4.2.0 which depends on meta ^1.4.0, json_serializable >=5.0.0 requires meta ^1.4.0. And because every version of flutter_test from sdk depends on meta 1.3.0, json_serializable >=5.0.0 is incompatible with flutter_test from sdk. So, because news_feed depends on both flutter_test any from sdk and json_serializable ^5.0.0, version solving failed. pub get failed (1; So, because news_feed depends on both flutter_test any from sdk and json_serializable ^5.0.0, version solving failed.)
これは、
「json_serializable」のバージョン5.0.0は、「json_annotation」のバージョン4.1.0以上でないと使えない
と言っているのですが、「json_annotation」は4.0.1でないとダメなので、仕方がないので今度は「json_serializable」の方も最新版の1つ手前
5.0.0 => 4.1.3
にしてやると、めでたくコンフリクトが無事解消します。
これは、もとを辿ればFlutterのSDKに起因する話ですので、FlutterのSDKの安定版がバージョンアップされた暁には、解消される可能性が高いと思われます。
「json_serializable」のパッケージでもissueが上がっていました。
(詳しくは、以下の動画で解説していますので、よろしければご覧下さい)