侧边栏壁纸
博主头像
996worker

祇園精舎の鐘の聲, 諸行無常の響き有り。

  • 累计撰写 168 篇文章
  • 累计创建 45 个标签
  • 累计收到 8 条评论

目 录CONTENT

文章目录

Android multidex分包报错

996worker
2021-08-15 / 0 评论 / 0 点赞 / 147 阅读 / 748 字
温馨提示:
本文最后更新于 2021-08-15,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

起因

当我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.

0

评论区