Problem Description:
Information:Gradle tasks [:app:assembleDebug]
Error:The number of method references in a .dex file cannot exceed 64K.
Learn how to resolve this issue at https://developer.android.com/tools/building/multidex.html
Error:com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536
Error: at com.android.dx.merge.DexMerger$8.updateIndex(DexMerger.java:565)
Error: at com.android.dx.merge.DexMerger$IdMerger.mergeSorted(DexMerger.java:276)
Error: at com.android.dx.merge.DexMerger.mergeMethodIds(DexMerger.java:574)
Error: at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:166)
Error: at com.android.dx.merge.DexMerger.merge(DexMerger.java:198)
Error: at com.android.builder.dexing.DexArchiveMergerCallable.call(DexArchiveMergerCallable.java:61)
Error: at com.android.builder.dexing.DexArchiveMergerCallable.call(DexArchiveMergerCallable.java:36)
Error: at java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1424)
Occurrence:
When using recycerview today, dependency imports
compile 'com.android.support:recyclerview-v7:21.0.0'
After adding dependencies, it is found that the project cannot run, and the number of methods has been reported to exceed 65536.
Solution:
android { compileSdkVersion 26 defaultConfig { applicationId "com.pm.launcher" minSdkVersion 15 targetSdkVersion 26 multiDexEnabled true //要添加的代码 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" }
Then add it to your Application
@Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(this); }
When adding MultiDex.install(this);, an error will be reported. We don't need to deal with it first, and it will not report an error if we run it directly.
This way we can resolve the error reported above.