はじめに
AndroidStudioで特に何も変更を加えていないアプリでManifest merger failedというエラーが出るようになった。調べたところAndroidXが公開されたことが影響しているらしい。
androidXとandroid.support.compatのライブラリがコンフリクトを起こしてエラーが生じるよう。
解決方法
1. gradle.propertiesファイルの変更
まずはじめに書いたようにManifest merger failedエラーが出たので解決を試みました。
gradle.propertiesファイルに以下を記載。
1 2 | android.useAndroidX=true android.enableJetifier=true |
この状態でSyncNowするとandroid.support.v7.app.AppCompatActivityをインポートしてAppCompatActivity()を継承しているクラスでエラーが出るようになった。
2. AppCompatActivityの変更
android.support.v7.app.AppCompatActivityをimportから削除。androidx.appcompat.app.AppCompatActivityをimport。
続いてandroid.support.constraint.ConstraintLayoutを使っているXMLのlayoutを
androidx.constraintlayout.widget.ConstraintLayoutに変更。
3. 再びエラー
これでビルドが通るかと思いきやError inflating class android.support.design.widget.BottomNavigationViewエラーが発生。。
何かと思えばandroid.support.design.widget.BottomNavigationViewもandroid.support.compatライブラリのものだったので存在しないエラーとなった。
4. BottomNavigationViewの置き換え
android.support.design.widget.BottomNavigationViewをcom.google.android.material.bottomnavigation.BottomNavigationViewに置き換えて再度ビルドすることでエラーを解決することができました。
そのほかのandroid.support.compatライブラリを使用しているものがあれば他も置き換える必要があ理想ですね。
以上です。