关于android方法总数超过64或者超多过65536问题解决

问题描述:

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);时,会报错,我们先不用处理,直接运行就不会报错了。

这样我们就可以解决以上报的错误。

猜你喜欢

转载自blog.csdn.net/zhuhuitao_struggle/article/details/80169984
今日推荐