问题描述:
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)
出现情况:
今天在使用recycerview时,依赖导入
compile 'com.android.support:recyclerview-v7:21.0.0'
添加过依赖后发现项目跑不起来,一直报方法数超过65536,
解决办法:
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" }
然后再自己的Application中添加
@Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(this); }
添加MultiDex.install(this);时,会报错,我们先不用处理,直接运行就不会报错了。
这样我们就可以解决以上报的错误。