Android-MultiDex

Android-MultiDex

为什么方法数不能超过 65535?

  • 因为 Android 编译时会将字节码生成 Dex 文件,而用于优化 Dex 的工具 DexOpt 会给每个方法编号检索,但是编号用的是 short,只有 2 字节,所以最高只能表示 2^16 - 1 = 65535

方法数超 65535 怎么办?

  • 使用 MultiDex,将不同类和不同方法编译到不同的 Dex 中,保证每一个 Dex 中的方法数小于 65535。

MultiDex 是哪个版本开始支持的?之前的版本不支持,如何加载 Dex 文件?


参考文献