SIerエンジョイ勢の雑記

日々の業務で学んだプログラミング知識や、Androidアプリ開発について書く予定です

【Androidアプリ開発】ビルド時にcannot fit requested classes in a single dex fileとなった場合の対策

結論

build.grandle(モジュールレベル)に対して下記のように追加してsyncを行ってから再度ビルドを実施

android {
    defaultConfig {
        ...
        minSdkVersion 15
        targetSdkVersion 28
        multiDexEnabled true  ←この行を追加(Dexファイルを複数利用)
    }
    ...
}

dependencies {
  implementation 'com.android.support:multidex:1.0.3'  ←この行を追加(minSdkVersion を 20 以下に設定している場合)
}

解説

アプリ、およびアプリの参照するライブラリが 65,536 メソッドを超えると、ビルドエラーが発生するようになるとのことです。
65,536メソッド以上に対応するために、Dexファイルを複数利用できる設定に変更するのが今回の対応です。

上記内容と解決方法について下記リンク(Android Developers)に記載してありましたが、
AndroidManifest.xmlについても修正が必要となっていましたが実際には不要でした。
Application クラスをオーバーライドしている場合はやる必要があるかもしれませんが、
私の場合はオーバーライドしていない場合の手順を踏むと別のエラーが出ました。

developer.android.com

Firebaseを利用しようとして、ライブラリの読み込みを追加したら、今回の事象が発生してしまいました。
build.grandleの修正後はsyncがうまくいっても実際にビルドするところまで試したほうがいいですね。