1. ホーム
  2. android

[解決済み] DexException: 新しいインデックス65536を非ジャンボ命令にマージできません。

2023-05-16 12:47:25

質問

なぜか突然、Android Studio からアプリがビルドできなくなりました。

次のようなメッセージが表示されます。

> com.android.ide.common.internal.LoggedErrorException: Failed to run command:
    /home/martynas/android-sdk/build-tools/19.1.0/dx --dex --num-threads=4 --output
...
...
...
Error Code:
2
Output:
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Cannot merge new index 65536 into a non-jumbo instruction!

同じアプリケーションをコマンドラインから正常にビルドしている間。 メソッド参照数を確認したところ、恐ろしいことに64kをはるかに下回っています。

現在、AS 0.8.11を使用しています。

どのように解決するのですか?

project.propertiesに次の行を追加してみてください。

dex.force.jumbo=trueを追加してください。

これは、dexファイル内の文字列の制限を増加させます。そして、あなたのプロジェクトはおそらくコンパイルされるでしょう。

注意: また、jumboセットでは、1つのdex内のメソッドにのみ64Kの制限があります。この制限を受ける場合は、いくつかの依存関係を削除する必要があります。

更新 - Google Play Services 6.5 (12-08-14)

バージョン 6.5 で、Google はついに Google Play Services をアンバンドルしました。そのため、今後は、API を選択的に実行ファイルにコンパイルすることが可能になります。

例:

compile 'com.google.android.gms:play-services-maps:6.5.+'
compile 'com.google.android.gms:play-services-ads:6.5.+'

その他の個別の Google Play Services API については、こちらをご覧ください。 のページをご覧ください。

更新(2015-04-21): https://developer.android.com/tools/building/multidex.html