一、先搞懂: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