以前のリビジョンの文書です
メソッド数が65k(65536)を超えると下記のビルドエラーが発生します。
ライブラリ等のメソッド数も含まれるため、大きめのライブラリをいくつか使用しているとわりと遭遇する。
UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536
サポートライブラリはビルドツールv21.1.0以上から利用出来ます。
・build.gradle
android { buildToolsVersion "21.1.+" defaultConfig { ... // Enabling multidex support. multiDexEnabled true } } dependencies { compile 'com.android.support:multidex:1.0.0' }
Applicationクラスを実装している場合は、継承をMultiDexApplicationに変更し、attachBaseContextをOverrideする。
・MyApp.java
public class MyApp extends MultiDexApplication { @Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(this); } }
Applicationクラスを実装していない場合は、AndroidManifestの<application>にMultiDexApplicationを指定する。
・AndroidManifest.xml
<application ... android:name="android.support.multidex.MultiDexApplication"> ... </application>