【Android】メソッド数が64Kを超えてしまいビルドできない

APKビルドしたら突然のエラー

apkビルド時に以下のエラーが出てビルド失敗となりました

Error:The number of method references in a .dex file cannot exceed 64K.
Learn how to resolve this issue at https://developer.android.com/tools/building/multidex.html

ちなみにエミュレータでの実行時にはエラーになりません

エミュレータと全然違うじゃん!
もういいよ、私Androidやめる!

何が起きているのか

64K を超えるメソッドを使用するアプリの設定 | Android Studio

要約:メソッド数はライブラリ含め65,536

対処

大抵の場合ライブラリが原因だと思われます

私の場合はGooglePlayServiceが圧迫していました SDKバージョンを変えたことにより、メソッド数もつられて増えたようでした 調べたところGooglePlayServiceだけで2万超えるようです

build.gradleを以下のように変えました

BEFRE

dependencies {
    compile 'com.google.android.gms:play-services:+'
}

AFTER

dependencies {
    compile 'com.google.android.gms:play-services-gcm:+'
}

GooglePlayService利用は必要なものだけ含めましょう

より詳しい対策などはこちら

64K を超えるメソッドを使用するアプリの設定 | Android Studio

qiita.com

qiita.com