[Flutter/Dart]2021年7月末時点では「json_serializable」と「json_annotation」の最新版同士ではコンフリクトが発生します

(結論を先に)

2021年7月時点では「json_serializable」と「json_annotation」の最新版同士ではコンフリクトが発生するので、

  • 「json_annotation」を4.0.1に
  • 「json_serializable」を4.1.3に

してやると解消します(共に現時点での最新版の1つ手前)。

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が上がっていました。

(詳しくは、以下の動画で解説していますので、よろしければご覧下さい)

こんな記事も読まれています

おすすめコンテンツ




Flutter(フラッター)


みんプロ作成アプリ




TOP