Android multidex分包报错

996Worker
996Worker
发布于 2021-08-15 / 293 阅读
0
0

Android multidex分包报错

起因

当我build Andriod 工程,提示multidex错误,报错信息会有65536这个数字。

这是因为,Android APK文件本质上是一个压缩文件,在android5.0之前,每一个android应用中只会含有一个dex文件classes.dex,该文件是Dalvik字节码文件,这个dex文件中存放的就是编译后的Java代码。Dalvik可执行文件规范限制了单个.dex文件最多引用的方法数是65536个。这就是64K(64*1024)事件

经过

可以查找Android官方文档。

Step 1. 配置Gradle

在app级build.gradle里增加:

defaultConfig {
        multiDexEnabled true
}

dependencies {

    implementation "androidx.multidex:multidex:2.0.1"
}

Step 2. 配置Application

  • 如果没有重写Application,只需修改Manifest文件中的内容
<application
        ...
        android:name="android.support.multidex.MultiDexApplication">
        ...
    </application>
  • 如果重写了Application,可以将继承的Application换成MultiDexApplication; 或者重写attachBaseContext() 方法:
@Override
 protected void attachBaseContext(Context base) {
     super.attachBaseContext(base);
     MultiDex.install(this);
}

结果

Done.


评论