Error: Cannot fit requested classes in a single dex file

在接入阿里推送的时候出现了一个错误:

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

原因:

应用中的Dex文件方法数超过了65535的上限(可能应用本身没有这么多方法但是集成了各种第三方SDK或者公共开源的Library文件、jar文件导致方法数超超过了65536),需要引入multidex 。

解决方法:

设置支持multidex
multiDexEnabled true

android {
    defaultConfig {
        ...
        minSdkVersion 21 
        // 设置支持multidex
        multiDexEnabled true
    }
    ...
}

若minSdkVersion >=21 这样应该就可以了
若minSdkVersion< 21那么继续配置:

  • 引入multidex库
dependencies {
    ......
    implementation 'com.android.support:multidex:1.0.3'
    ......
}
  • 在application 中初始化 MultiDex
@Override
public void onCreate() {
    super.onCreate();
    ......
    MultiDex.install(this);
    ......
}

或者继承MultiDexApplication

public class MyApplication extends MultiDexApplication {
  @Override
  public void onCreate() {
    super.onCreate();
    ......
  }
}

我用的是第一种,第二种没试过。

你可能感兴趣的:(Error: Cannot fit requested classes in a single dex file)