この記事について
udemyのコースで、Flutterの勉強をしている際に、パッケージの依存関係で、詰まってしまった箇所があったので、その時の解決方法を残します。
環境
windows 10
エラー内容
エラーは以下のような内容になります。
Could not determine the dependencies of task ':app:compileDebugJavaWithJavac'.
In project 'app' a resolved Google Play services library dependency depends on another at an exact version (e.g. "[19.1.
0]", but isn't being resolved to that version. Behavior exhibited by the library will be unknown.
Dependency failing: com.google.android.gms:play-services-vision-image-label:18.0.4 -> com.google.android.gms:play-servic
es-vision-common@[19.1.0], but play-services-vision-common version was 19.1.1.
(省略)
原因
エラー内容を見ると書いてあるのですが、
play-services-vision-image-label:18.0.4
のパッケージが play-services-vision-common
の19.1.0を使おうとしているのに、現在のバージョンが19.1.1で、ズレがあるということでエラーになっているようです。
解決方法
エラー内容を順番に見てみると、教材のpubspec.yamlに追加していた。 firebase_ml_vision
というのが、今回の教材で、新しく追加したパッケージの名前にあったので
このパッケージについて、調べてみる。
-- Project 'app' depends onto com.google.firebase:firebase-ml-vision@{strictly 24.1.0}
-- Project 'app' depends onto com.google.android.gms:play-services-vision-face-contour-internal@{strictly 16.0.0}
-- Project 'app' depends on project 'firebase_ml_vision' which depends onto com.google.firebase:firebase-ml-vision@20.0.
0
以下のコマンドを実行すると、パッケージの状態を一覧表示できます。
flutter pub outdated
C:\Flutter >flutter pub outdated
Showing outdated packages.
[*] indicates versions that are not the latest available.
Package Name Current Upgradable Resolvable Latest
direct dependencies:
camera *0.5.8+17 *0.5.8+17 0.8.1+3 0.8.1+3
firebase_core *0.5.3 *0.5.3 1.3.0 1.3.0
image_picker *0.6.7+22 *0.6.7+22 0.8.1+1 0.8.1+1
(省略)
この中の Resolvable
というのが、パッケージの依存関係を意識した最新バージョンになるので、pubspec.yamlのバージョンを一覧の通りに更新する。
Resolvable以外の意味については、参考にさせて頂いたリンクがあります。
あとは、pubspec.yamlを Resolvable
に記載のあったバージョンに更新したら、
私の場合、正常に稼働するようになりました。
まとめ
2年前の僕だったら、エラーが出たら投げてたかもしれなかったですが、無事解決できて良かったです。
文章を書き慣れていないため、誤植などがありましたら、すいません。
参考にさせて頂いたリンク
[Flutter]バージョンアップする必要のあるパッケージを特定する方法(pub outdatedの使い方)
https://minpro.net/flutter-pub-outdated