LoginSignup
3
1

More than 3 years have passed since last update.

AndroidX を適用した Flutter プロジェクトで 'androidx.core:core' has different version for the compile (1.0.0) and runtime (1.0.2) classpath エラーが出た場合の対応

Last updated at Posted at 2019-10-15

環境

$ flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, v1.9.1+hotfix.2, on Mac OS X 10.14.5 18F203, locale ja-JP)

本文

AndroidX にマイグレーションした Flutter プロジェクトで、 Firebase プラグインを入れてリリースビルドしたら以下のようなエラーが発生しました。


$ flutter build appbundle

(省略)

FAILURE: Build failed with an exception.                                

* What went wrong:                                                      
Execution failed for task ':app:preReleaseBuild'.                       
> Android dependency 'androidx.core:core' has different version for the compile (1.0.0) and runtime (1.0.2) classpath. You should manually set the same version via DependencyResolution

どうやら Firebase プラグインの依存する androidx.core:core のバージョンが違うことが理由のようで、エラーを最後まで読むと「手動で依存関係の解決方法を設定しろ」とのこと。

で、ググったところドンピシャでこの問題にぶち当たってる情報が見つからなかったですが、素直に Gradle のドキュメントを見ながらいろいろ試したところ、 app/build.gradle ファイルに以下を追記して androidx.core グループのバージョンを全て 1.0.0 に揃えることでビルドできるようになりました。

app/build.gradle

configurations.all {
    resolutionStrategy.eachDependency { DependencyResolveDetails details ->
        print(details.requested.group)
        if (details.requested.group == 'androidx.core') {
            details.useVersion '1.0.0'
            details.because 'API needs higher versions'
        }
    }
}

おそらく Flutter で Firebase 関連のプラグインを使おうとするとだいたい引っかかる(の割にはあまり情報がない)問題だと思うので、ご参考になれば。

なお、参考にした Gradle のドキュメントは以下です。

Customizing Dependency Resolution Behavior - Gradle

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1