[Flutter]2022年3月時点ではDriftパッケージでpath1.8.1を使おうとするとエラーになります(flutter_test from sdk is forbidden)

このページには広告が含まれる場合があります。

 

Flutterで、SQL文を使わずにDartだけで「SQLite」のデータベースが操作できる「Drift(旧:Moor)」というパッケージがありますが、

Dartのデータベースパッケージ「Moor」でSQLiteをDartだけで操作できることを説明したスライド

このパッケージを使う際には、Driftだけではなくて、以下のようにいろんなパッケージを同時に設定する必要があります。

dependencies:
  drift: ^1.4.0
  sqlite3_flutter_libs: ^0.5.0
  path_provider: ^2.0.0
  path: ^1.8.1

dev_dependencies:
  drift_dev: ^1.4.0
  build_runner: ^2.1.7

パッケージのバージョンについてはDriftの公式リファレンスでちゃんと指定してくれており、使う側は普段はそれをそのままコピーして使えるのですが、

Drift公式ドキュメントの「Getting started」。pubspec.yamlにそのままコピーする依存関係

2022年3月時点では、そのままコピーしてしまうと以下のようなエラーが出てしまって設定ができない不具合が発生します。

Because every version of flutter_test from sdk depends on path 1.8.0 and my_own_frashcard depends on path ^1.8.1, flutter_test from sdk is forbidden.
So, because my_own_frashcard depends on flutter_test from sdk, version solving failed.
pub get failed (1; So, because my_own_frashcard depends on flutter_test from sdk, version solving failed.)

pub getで「Because every version of flutter_test from sdk depends on path 1.8.0」のエラーが出る

これは、

  • FlutterのSDKで使っている「flutter_test」というパッケージが「path」パッケージのバージョン1.8.0を使っているが、
  • 自分のプロジェクト(上の例では「my_own_frashcard」)では「path」パッケージのバージョン1.8.1を使おうとしていて
  • 同じパッケージで異なるバージョンを使おうとしているのでダメ

ということが言われていて、「flutter_test」については独立したパッケージではなくてFlutterのSDKに入っているものなので、開発者側からは変えようがないので、こちらで使っているpathのバージョンを1.8.0に変更してやると解消します。

pubspec.yamlでpathのバージョンを1.8.0にすると、pub getが成功する

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

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

【無料】生年月日を入力するだけ!

あなたの知らない「あなた」がわかる
無料診断ツール

あすコロ式
使命・性格タイプ診断

生年月日を入力するだけで144通りの性格パターンを診断。あなたの知らない「本当のあなた(生きる目的・使命)」と「偽りのあなた(無意識の思いグセ)」がわかります!

今すぐ無料で診断する ▶

TOP