Android Studioで Duplicate classes エラーの対処法

Android Studio でアプリビルドしてたとき。

こんなエラーに遭遇してしまいました。

Duplicate class adnroid.support・・・

なんか長ったらしいエラーが出てます。

このエラーを解決するのに試した対処法をまとめました。

この Duplicate class エラーに遭遇した経緯

まずこのエラーに遭遇した経緯について

それは公開済みアプリをビルドしたとき起こりました。

 

そのアプリでは次の2つを導入してたんです。

▼ アプリレベルの build.gradle の内容抜粋

▼ ビルドしたときに出たエラー

どうやら両ライブラリで重複クラスがある模様

 

まずはどういう状況なのか確認してみます。

まず左のエクスプローラーから【Porject】を選択

どのライブラリで Duplicate classes エラーが出てるのかProjectから調べてみる

そしたら【External Libraries】のディレクトリに注目

今回の場合、次の2つが競合していました。

  • android.support.customtabs
  • androidx.browser.customtabs

▼ 1つめ

Duplicate classes エラーを出す原因になっていたライブラリの1つめ

▼ 2つめ

Duplicate classes エラーを出す原因になっていたライブラリの2つめ

両者とも ICustomTabsCallback  とか全く同じのを含んでます。

これなら Duplidate class とか出るのも納得。

こういう風に androidX のせいで Duplicate class が出ることが多いですね。

対策1.build.propertiesの設定見直し

困ったのでいろいろ解決策を探します。

すると出てきたのが gradle.properties に以下を追加すること

でも自分のプロジェクトでは既に設定済みでした。

この解決策では対処できないトラブルみたいです。

対策2.競合モジュール(classes.jar)を除外

2つめに試したのが競合ライブラリの除外

アプリレベルの build.gradle に次を書いてみました。

が、これもダメ、、、

やはりビルド失敗してしまいました。

対策3.implementationから競合モジュールを除外

最後に試したのがこれ

implementationの内部で競合モジュールを除外してみました。

そして【Build】=>【Make project】してみると・・・

無事ビルド成功!!

とりあえずビルドできてよかったです。

以上、Duplicate classes エラーの対処法でした。ではまた