MultiDex的使用:

一、先搞懂:MultiDex 是干嘛的?

一句话原理

Android 单个 dex 文件 里方法数最多只能有 65535 个(64k 限制)。当你的项目:

  • 依赖很多库
  • 代码越来越多
  • 方法数超了 65535

安装、运行时就会崩溃!

MultiDex 就是让 APP 支持多个 dex 文件,突破 64K 方法数限制。


二、哪些 Android 版本需要配置?

1. Android 5.0 以上(API 21+)

✅ **系统原生支持 MultiDex****不需要你做任何配置!**系统自动支持多个 dex。

2. Android 4.4 以下(API 20 及以下)

❌ 系统不支持必须手动配置 MultiDex!


三、现在项目怎么配?(2025 最标准配置)

现在的项目minSdkVersion 基本都是 21 以上,所以:

✔ 绝大多数新项目:完全不用配 MultiDex!


四、但如果你的 minSdk <= 20(老项目)

必须按下面配置:

1. build.gradle(Module 级别)

gradle

arduino 复制代码
android {
    defaultConfig {
        // 开启 MultiDex
        multiDexEnabled true
    }
}

dependencies {
    // 多 dex 依赖(仅低版本需要)
    implementation "androidx.multidex:multidex:2.0.1"
}

2. 自定义 Application

方式 1:继承 MultiDexApplication

kotlin

kotlin 复制代码
class MyApplication : MultiDexApplication() {
}

方式 2:不继承,手动安装

kotlin

kotlin 复制代码
class MyApplication : Application() {
    override fun attachBaseContext(base: Context?) {
        super.attachBaseContext(base)
        // 安装 MultiDex
        MultiDex.install(this)
    }
}

3. AndroidManifest.xml

xml

ini 复制代码
<application
    android:name=".MyApplication"
    ...>
</application>

五、最关键结论(你必须记住)

1. minSdkVersion >= 21

✅ 不用配 MultiDex系统自带支持

2. minSdkVersion <= 20

✅ 必须配 MultiDex

3. 现在 99% 的新项目

minSdk 都是 21、23、24MultiDex 已经不用管了!


六、你最可能遇到的问题

报错:

plaintext

css 复制代码
Cannot fit requested classes in a single dex file

意思:方法数超过 64K

解决:

gradle

arduino 复制代码
multiDexEnabled true

七、终极极简总结

MultiDex 作用:突破 65535 方法数限制

Android 5.0+:系统自带,不用配

Android 4.4 及以下:必须手动配置

现在新项目:基本不用管!

相关推荐
alexhilton4 天前
模块化Jetpack Compose架构
android·kotlin·android jetpack
hai_android4 天前
InputStage 责任链核心执行流程
android·android studio·android jetpack
传奇开心果编程5 天前
【现代声明式UI学与练】第4课 列表渲染与 key——如何高效渲染列表、key 的作用、列表重排时的状态保持
学习·flutter·react native·ui·swiftui·android jetpack
传奇开心果编程6 天前
【现代声明式UI学与练】第7课 组件通信——父传子、子传父、跨层级通信、状态提升与 Context
学习·flutter·react native·ui·swiftui·android jetpack
传奇开心果编程6 天前
【现代声明式UI学与练】第9课 性能优化——渲染优化、列表优化、内存优化、启动优化
学习·flutter·react native·ui·性能优化·swiftui·android jetpack
天空之城--8 天前
Android一周动态:Android 18首次官宣、Compose Material3 1.4转正(5趋势+5资讯)
android·人工智能·flutter·架构·android jetpack
传奇开心果编程9 天前
【现代声明式UI学与练】第1课 从命令式UI到声明式UI
学习·flutter·ui·swiftui·react·android jetpack
传奇开心果编程12 天前
【用案例学Material 3 Expressive】第1课:从一封邮件开始,感受安卓设计新语言的表现力
android·学习·ui·kotlin·android jetpack
传奇开心果编程13 天前
【Jetpack Compose进阶学与练】第14课:系列收尾复习总结;Compose项目常见坑点汇总;学习路线与后续学习方向
android·学习·ui·kotlin·android jetpack
hai_android13 天前
子 View 被压小时,如何向父容器"告状"?——MEASURED_STATE_TOO_SMALL 向上传递机制
android·kotlin·android jetpack