The number of method references in a .dex file cannot exceed 64K.

個人開発したアプリの宣伝
目的地が設定できる手帳のような使い心地のTODOアプリを公開しています。
Todo with Location

Todo with Location

  • Yoshiko Ichikawa
  • Productivity
  • Free

スポンサードリンク

開発中のビルドは問題なく通ってたのですが、ストア公開用の署名付きビルド作成時にこういったエラーが発生し、ビルドが失敗しました。

Error: null, Cannot fit requested classes in a single dex file (# methods: 71451 > 65536)
The number of method references in a .dex file cannot exceed 64K.

64Kを超えるメソッドを定義した時は特別な対応をする必要があるので、下記サイトの手順通りに対応を行います。また、64Kは導入したライブラリやSDKの中のメソッド数も含むので結構、頻繁に発生するのではないかと思います。

64K を超えるメソッドを使用するアプリ向けに multidex を有効化する  |  Android Developers

Application クラスをオーバーライドしない場合、次のようにマニフェスト ファイルを編集して、<application> タグで android:name を設定します。とありましたが、私の環境ではマニフェストに

<application
            android:name="android.support.multidex.MultiDexApplication" >

と記載したところ、unresolv multidex.MultiDexApplicationとなったので、マニフェストには特になにも記載せず、app/build.gradleのみに手順通り

android {
    compileSdkVersion 28
    defaultConfig {
        ...
        multiDexEnabled true
    }
}
...
dependencies {
    ...
    implementation 'com.android.support:multidex:1.0.3'
}

と記述して署名付きビルドしたところ問題なくビルドができ、Google Play Storeにて公開できました。