当我如文档所述在 Android Studio 中启用MultiDex 功能时,它会自动拆分为两个或多个 dex 文件。我无法配置它。而且似乎在主 dex 文件中,方法的数量非常接近限制(65536)。
问题是如何配置它,使主 dex 文件中的方法数量减少到一定数量,比如 60k。我必须把apk上传到amazon appstore,amazon的人会在主dex文件中添加一些方法,使其超过65536的限制。
当我如文档所述在 Android Studio 中启用MultiDex 功能时,它会自动拆分为两个或多个 dex 文件。我无法配置它。而且似乎在主 dex 文件中,方法的数量非常接近限制(65536)。
问题是如何配置它,使主 dex 文件中的方法数量减少到一定数量,比如 60k。我必须把apk上传到amazon appstore,amazon的人会在主dex文件中添加一些方法,使其超过65536的限制。
dx 工具有以下选项:
您必须通过指定这两个选项来自定义您的build.gradle脚本。例如(来源):
tasks.withType(com.android.build.gradle.tasks.Dex) { dexTask ->
def command = [] as List
command << ' --minimal-main-dex'
command << ' --set-max-idx-number=50000'
dexTask.setAdditionalParameters(command)
}
请注意,如果您的主 dex 太大,这将无济于事。有一些规则可以控制哪些类应该放在主 dex 中。我在这里写了关于他们的博客。
编辑(1-9-2016):
Android 插件版本 1.5 不允许向 dx 添加其他参数,但似乎它将在即将发布的版本之一中修复。