AppSeedのアプリ開発ブログ

アプリ開発会社AppSeed(アップシード)開発担当のブログです。iOS、Android、Unity、Cocos2d-xなどアプリ開発関連のTipsや備忘録、アプリ開発に役立つ情報を発信します。

【Android】「Cannot fit requested classes in a single dex file.」のエラーの対処法

https://cdn-ak.f.st-hatena.com/images/fotolife/h/hmbdyh/20170110/20170110101721.jpg


先日、Androidアプリを開発していたら以下のようなエラーが出ました。

D8: Cannot fit requested classes in a single dex file. Try supplying a main-dex list.


今回はこのエラーの対処法についてのメモです。


「Cannot fit requested classes in a single dex file.」のエラーの対処法

いろいろ調べた結果、以下のサイトが参考になりました。

minpro.net


こちらのサイトによると、一定のメソッド数以上のプロジェクトをビルドする場合、制約によりビルドエラーが出る仕様みたいです。

上記のようなプロジェクトの場合はapp/build.gradleの「defaultConfig」に「multiDexEnabled true」を設定することでこのエラーを回避できるようです。

android {
    defaultConfig {
        minSdkVersion 16 
        targetSdkVersion 28
        multiDexEnabled true
    }
}

「multiDexEnabled true」の設定を追加したらビルドエラーが解消されました。
今回のビルドエラーが発生したAndroidプロジェクトは複数の広告SDKを導入しているので、メソッド数が多くなってしまったようです。