Flutterで、SQL文を使わずにDartだけで「SQLite」のデータベースが操作できる「Drift(旧:Moor)」というパッケージがありますが、
このパッケージを使う際には、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の公式リファレンスでちゃんと指定してくれており、使う側は普段はそれをそのままコピーして使えるのですが、
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.)
これは、
- FlutterのSDKで使っている「flutter_test」というパッケージが「path」パッケージのバージョン1.8.0を使っているが、
- 自分のプロジェクト(上の例では「my_own_frashcard」)では「path」パッケージのバージョン1.8.1を使おうとしていて
- 同じパッケージで異なるバージョンを使おうとしているのでダメ
ということが言われていて、「flutter_test」については独立したパッケージではなくてFlutterのSDKに入っているものなので、開発者側からは変えようがないので、こちらで使っているpathのバージョンを1.8.0に変更してやると解消します。
(詳しくは、以下の動画で解説していますので、よろしければご覧下さい)