最近开发中遇到一个报错信息 如下
Error: Cannot fit requested classes in a single dex file (# methods: 67667 > 65536)大致意思是Android App中的方法数超过65535时,如果往下兼容到低版本设备时,就会报编译错误,尤其在引入一些jar包和搞了一个modle进来之后容易出现这个错误,因为Android系统定义总方法数是一个short int,short int 最大值为65536,当你引入一些jar包后方法超过65k个方法。一个dex已经装不下了,需要个多个dex,也就是multidex ,
解决办法:
1、在dependencies里面添加:
implementation 'com.android.support:multidex:1.0.3'
在app model中的build.gradle的dependencies中加入上面那句话
2、gradle文件的defaultConfig默认配置里面增加:
multiDexEnabled true
android {
compileSdkVersion 23
defaultConfig {
applicationId "com.baidu.www"
minSdkVersion 19
targetSdkVersion 23
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true
}
在defaultConfig中加入multiDexEnabled true
3.最后在自定义了Application子类,需要在这个子类中重写一个方法
// 主要是添加下面这句代码
MultiDex.install(this);