如文档所述,当我在Android Studio中启用MultiDex feature时,它会自动拆分为两个或多个dex文件。我无法配置它。而且在主dex文件中,方法的数量似乎非常接近限制(65536)。

问题是如何配置它,使主dex文件中的方法数量减少到一定数量,例如60k。我必须将apk上传到亚马逊应用商店,亚马逊人民将在dex主文件中添加一些方法,使其超过65536的限制。

最佳答案

dx工具具有以下选项:

  • --minimal-main-dex -将仅将由main-dex-list选择的类放入主dex。
  • --set-max-idx-number -未记录的选项,用于确定每个dex文件的最大方法数量。

  • 您必须通过指定这两个选项来自定义build.gradle脚本。例如(source):
    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中放置哪些类。我写了关于here的博客。

    编辑(1-9-2016):
    Android插件的版本1.5不允许向dx添加其他参数,但在即将发布的版本之一中为it seems that it will be fixed

    关于android - 在Android Studio中使用MultiDex功能时,是否有一种方法可以限制主dex文件中的方法数量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27631500/

    10-10 18:04
    查看更多