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 及以下:必须手动配置

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

相关推荐
学习使我健康3 天前
一个基于 **Jetpack Compose + Material 3** 的 Android 入门示例项目,演示 Compose 声明式 UI 的核心用法
ui·kotlin·android jetpack
alexhilton3 天前
Android XR 开发入门完全指南
android·kotlin·android jetpack
我命由我123455 天前
Jetpack Compose - Material Design 断点范围、WindowSizeClass、针对不同屏幕尺寸创建预览、四类导航栏
android·java·开发语言·java-ee·kotlin·android jetpack·android runtime
我命由我123456 天前
Jetpack Compose - MaterialExpressiveTheme 与 MaterialTheme、ColorScheme
android·java·开发语言·java-ee·kotlin·android jetpack·android runtime
我命由我123456 天前
Kotlin 面向对象 - Kotlin 类变量与类方法
java·服务器·后端·java-ee·kotlin·android jetpack·android runtime
小孔龙8 天前
Compose 布局与绘制:LayoutNode、DisplayList 与 GraphicsLayer
android·android jetpack
alexhilton9 天前
探究Android Views、Flutter和Compose如何渲染你的UI
android·kotlin·android jetpack
Lesile10 天前
Android:Hilt框架入门 · 在ViewUI和ComposeUI下的应用
android·android jetpack
我命由我1234512 天前
Jetpack Room - TypeConverter
android·java·java-ee·android studio·android jetpack·android-studio·android runtime