この文書の現在のバージョンと選択したバージョンの差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
dexindexoverflowexception_通称65k問題_の対応 [2015/11/30 09:39] sou [multidexビルドが遅い場合の対応] |
dexindexoverflowexception_通称65k問題_の対応 [2015/12/02 10:03] (現在) sou [MultiDexのSupportライブラリで対応する] |
||
---|---|---|---|
ライン 5: | ライン 5: | ||
com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536 | com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536 | ||
+ | ===== ProGuardを有効にする ===== | ||
+ | ProGuardを有効にすることで、使用していないメソッドの削除と最適化を行うことが出来ます。\\ | ||
+ | |||
+ | android { | ||
+ | buildTypes { | ||
+ | release { | ||
+ | // Proguardを有効にする | ||
+ | minifyEnabled true | ||
+ | // Proguardルールファイル proguard-rules-debug.pro を指定する。 | ||
+ | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules-debug.pro' | ||
+ | } | ||
+ | } | ||
+ | } | ||
===== MultiDexのSupportライブラリで対応する ===== | ===== MultiDexのSupportライブラリで対応する ===== | ||
- | サポートライブラリはビルドツールv21.1.0以上から利用出来ます。\\ | + | ProGuardの他に、サポートライブラリで対応することも出来ます。\\ |
+ | こちらはメソッドの定義ファイルを分割することで、65k以上のメソッドを使用可能にしてるみたいでProguardとは考え方が違うようです。\\ | ||
+ | サポートライブラリはビルドツールv21.1.0以上から利用可能です。\\ | ||
・build.gradle | ・build.gradle | ||
android { | android { | ||
ライン 34: | ライン 49: | ||
Applicationクラスを実装していない場合は、AndroidManifestの<application>にMultiDexApplicationを指定する。\\ | Applicationクラスを実装していない場合は、AndroidManifestの<application>にMultiDexApplicationを指定する。\\ | ||
・AndroidManifest.xml | ・AndroidManifest.xml | ||
- | <application> | + | <application |
... | ... | ||
android:name="android.support.multidex.MultiDexApplication"> | android:name="android.support.multidex.MultiDexApplication"> | ||
ライン 56: | ライン 71: | ||
加したProduct Flavorで行うのがお勧めです。\\ | 加したProduct Flavorで行うのがお勧めです。\\ | ||
(引用:Android実践プログラミング) | (引用:Android実践プログラミング) | ||
+ | |||
+ | ===== ビルド時にJavaヒープがOutOfMemoryを起こす場合 ===== | ||
+ | ・Android Studioの設定を変更する\\ | ||
+ | 32bitの場合\\ | ||
+ | IDEルート\bin\studio.exe.vmoptions\\ | ||
+ | 64bitの場合\\ | ||
+ | IDEルート\bin\studio64.exe.vmoptions\\ | ||
+ | 上記をエディタで開き、「-XX:MaxPermSize=512m」に設定\\ | ||
+ | |||
+ | ・ビルド時のdexオプションを設定する\\ | ||
+ | android { | ||
+ | dexOptions { | ||
+ | incremental true | ||
+ | jumboMode true | ||
+ | javaMaxHeapSize "4g" | ||
+ | } | ||
+ | } | ||
===== 参考URL ===== | ===== 参考URL ===== | ||
http://developer.android.com/intl/ja/tools/building/multidex.html\\ | http://developer.android.com/intl/ja/tools/building/multidex.html\\ | ||
+ | http://qiita.com/hirano/items/5071fce400bd212f2dcd\\ | ||
+ |