MultiDex介绍与使用
MultiDex
Class文件与Dex文件
Dex(Dalvik-executable) class文件处理后的产物,专门为安卓上的虚拟机设计的一种压缩格式
in JAVA: *.java *.kt => *.class => JVM
in Android: *.java *.kt => *.class =>(去冗余) *.dex => Dalvik VM or ART VM
使用MultiDex的原由
当 Android 应用程序包含太多的方法数时,会出现 "方法数超过 65536" 的编译错误。这是由于 Android 操作系统对单个 Dex 文件(Dalvik Executable)的方法数有限制所致。为了解决这个问题,Android 提供了 Multidex 支持。
如何使用
- Android 5.0及更高版本
//in Build.gradle
android {
defaultConfig {
...
minSdkVersion 21// Android 5.0
multiDexEnabled true// 启用MultiDex,Android 5.0及更高版本默认启用,实际无需配置
}
}
- Android 5.0之前版本
//in Build.gradle
android {
defaultConfig {
...
minSdkVersion 14// Android 4.0
multiDexEnabled true// 启用MultiDex
}
}
dependencies {
def multidex_version = "2.0.1"
implementation "androidx.multidex:multidex:$multidex_version"
}
如果没有自定义Application
<!-- in AndroidManifest.xml -->
<application
android:name="androidx.multidex.MultiDexApplication" >
...
</application>
如果自定义了Application
// in your custom Application
public class MyApplication extends MultiDexApplication { ... }
如果您替换 Application 类,但无法更改基类,可以这么做以开启MultiDex
// in your custom Application
public class MyApplication extends SomeOtherApplication {
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!