「com.android.dex.DexIndexOverflowException:method ID not in[0,0 xffff]:65536」の問題を解決

1965 ワード

  • Googleの公式はすでに関連するドキュメントを提供して、ネット上で検索する資料を参照して、まず、私の問題は:
  • Error:Execution failed for task ':duchazhushou:dexRelease'.
    > com.android.ide.common.internal.LoggedErrorException: Failed to run command:
        C:\Users\jeff\AppData\Local\Android\sdk\android-sdk\build-tools\21.1.1\dx.bat --dex --output D:\dev\android\Duchazhushou_TDT\duchazhushou\build\intermediates\dex\release --input-list=D:\dev\android\Duchazhushou_TDT\duchazhushou\build\intermediates\tmp\dex\release\inputList.txt
    Error Code:
    Output:
        UNEXPECTED TOP-LEVEL EXCEPTION:
        com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536
            at com.android.dx.merge.DexMerger$6.updateIndex(DexMerger.java:502)
            at com.android.dx.merge.DexMerger$IdMerger.mergeSorted(DexMerger.java:277)
            at com.android.dx.merge.DexMerger.mergeMethodIds(DexMerger.java:491)
            at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:168)
            at com.android.dx.merge.DexMerger.merge(DexMerger.java:189)
            at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454)
            at com.android.dx.command.dexer.Main.runMonoDex(Main.java:302)
            at com.android.dx.command.dexer.Main.run(Main.java:245)
            at com.android.dx.command.dexer.Main.main(Main.java:214)
            at com.android.dx.command.Main.main(Main.java:106)
    
  • プロジェクトのbuild.gradleファイルのdependenciesセクションにパケット設定を追加するには:
  • dependencies { 
    ... 
       compile 'com.android.support:multidex:' 
       ... 
    }
    
  • defaultConfigセクションでmultiDexEnabledラベルをtrueに設定することで、multi-dexingサポートを開始します:
  • defaultConfig { 
       ... 
    multiDexEnabled true 
    ... 
    }
    
  • Applicationはandroidを継承する.support.multidex.MultiDexApplication、またはAndroid Manifestに直接.xmlファイルのApplication宣言に追加:
  • android:name="android.support.multidex.MultiDexApplication"
    
  • 再build.

  • リファレンスソース