a single dex file (# methods: 67938 > 65536)

问题

项目不大,但是导入的包比较多,导致方法数量超过了一定数量

Cannot fit requested classes in a single dex file (# methods: 67938 > 65536)

Android 5.0之前的版本(API level < 21)使用Dalvik runtime来执行代码,默认限制每个APK只能使用一个classes.dex文件,而DEX规范又将单个DEX文件内引用的方法总数限制为65536个

a single dex file (# methods: 67938 > 65536)_第1张图片

两种修改方式

1、minSdkVersion 改成 21及以上

简单粗暴,但是如果minsdk一定要在21以下的话,可以参考第二种方法,使用multidex

2、multidex分包

android {
    defaultConfig {
        // 这里添加
        multiDexEnabled true
	}
}

dependencies {
    // 引入multidex库
    implementation 'com.android.support:multidex:1.0.3'
}

在自定义的 application 中初始化 MultiDex

@Override
public void onCreate() {
    super.onCreate();
    // 初始化MultiDex
    MultiDex.install(this);
}

清单文件中,引用自定义的application

你可能感兴趣的:(dex,file,android,methods,67938,65536,MultiDex,分包)