为什么使用分包
When your app and the libraries it references exceed 65,536 methods, you encounter a build error that indicates your app has reached the limit of the Android build architecture:
官网文档指出,当您方法数超过 65536,则会构建报错。
trouble writing output:
Too many field references: 131000; max is 65536.
You may try using --multi-dex option.
or
Conversion to Dalvik format failed:
Unable to execute dex: method ID not in [0, 0xffff]: 65536
了解 Dex 文件
Android 5.0 (API 21) 之前,使用 Dalvik 运行字节码文件,默认情况,每个应用只能使用一个 dex 字节码文件。
Android 5.0 及之后的版本,使用 ART 运行,本身支持加载多个 dex 文件,ART 会在应用安装时进行预编译,将多个 dex 文件编译成为 一个 .oat
文件,
当 minSdkVersion
为 21 或者更高时,则会默认开启 MultiDex
配置
当 minSdkVersion
低于 21 时,按照下面方法开启 MultiDex
- 首先在 app 项目中的 build.gradle 中添加下面参数
defaultConfig {
...
multiDexEnabled true
...
}
dependencies {
...
api 'com.android.support:multidex:1.0.1'
}
image.png
image.png
image.png
新建类继承 MultiDexApplication
package com.example.sealtalk_demo;
import android.app.Application;
import androidx.multidex.MultiDexApplication;
import io.rong.imkit.RongIM;
public class IMApplication extends MultiDexApplication {
@Override
public void onCreate() {
super.onCreate();
}
}
网友评论