build.gradleのdependencies内のclasspath ‘com.android.tools.build:gradle:〇.〇.〇’という
なにやら一見Gradleのバージョンのように見えますが、Gradleそのものとは別物で
プラグインの一種ということを知りました。
AndroidStudioで任意のGradlePluginバージョンを指定すると、何がなんでも
最新のバージョンにあげようとしてくるのですが、何も考えずに
バージョンを上げてしまうと、今まで使っていたプラグインがバージョン違いの
ため使えなくなってしまいます。
例えば、implementation com.google.firebase:firebase-core:+ですが、
GradlePluginバージョンを上げてこれを入れてビルドすると、
firebase-coreが見つかりませんと警告を受けます。
このcom.google.firebase:firebase-core:+の「+」は、
最新のバージョンを持ってきますよという意味があり、
最新のGradlePluginと最新のcom.google.firebase:firebase-core:+では
相性が悪いようでこのままでは使うことができません。なので
お互いに適度なバージョンに合わせてあげるのが正解です。
firebase系のプラグインに限らず、プラグインのバージョン指定の組み合わせは
結構大事なのでおさえておきたいポイント。
始めたばかりの頃は何も考えずやたら最新に更新していたので、バージョン依存の
エラーをバンバン出してGradleを困らせていました。
全てのプラグインが最新=最適解ではないので、自分のプラグイン群と
相談しながらバージョンを決めていきましょう。