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();
    ......
  }
}

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容