多 dex 分包问题

Android 存在方法数限制在 65536 以内的问题,如果自动插码总方法数超过了这个限制,就会失败。(此时需要您对 App 执行分包操作)

如果 App 已经执行过分包,插码过程中依然超过了 65536,插码工程将会试图移动 classes.dex 内的方法数到 classes[i].dex 文件中,您可以参考插码 log 信息查看 MainDex 内的方法数大小,以此来计算参数 MultidexMoveMethodCount 的参数值,建议在3000左右。

移动方法数到 classes[i].dex 文件中可能存在 Install_Update.lang.NoClassDefFoundError 异常,如果您的 App 在调整 MultidexMoveMethodCount 到最小后,依然抛出异常的情况,您不得不重新构建一个apk ,配置 dexOptions 选项,强制保留启动相关类在 Main-dex 中,对 Android Studio 建议您采用 gradle plugin version 2.2.0 及以上版本,并添加如下参数。

dexOptions {
additionalParameters '--minimal-main-dex'
}

同时

dexOptions {
additionalParameters '--set-max-idx-number=60000'
}