如何将标志传递到D8工具?

时间:2019-01-17 10:20:52

标签: android android-studio multidex android-d8 d8-dexer

D8 是Android Studio和Android Gradle插件用来将项目的Java字节码编译成DEX字节码的命令行工具。 该命令具有several options

-输出路径,   -每个班级的文件,   -禁止重复使用-main-dex-list 等。

我有几个问题:

  1. 如何从gradle构建文件将此标志传递给d8?
  2. 如何查看Android Studio在构建apk时实际使用的完整d8命令(带有所有标志)。

我已经尝试将DexOptions commandadditionalParameters属性一起使用。

android {
    ....
    dexOptions {
        additionalParameters = ['--main-dex-list=mylist.txt']
    }
}

但它似乎不起作用。

D8 工具之前,有 DX 工具。可以这样将参数发送给DX: enter image description here 但是现在这行不通了。可能因为现在D8的Dexing任务名称不是以dex字开头。

我还注意到,有一个属性android.enableD8.desugaring=true可以在gradle.properties文件中声明。我假设此属性打开了D8-no-desugaring 标志。

是否可以通过gradle.properties文件设置其他属性?是否有所有可用的android.enableD8.*属性的文档?

更新:

有一个multiDexKeepFile属性,可以在每个BuildType块中声明该属性。看起来此属性确实执行 D8 -main-dex-list 标志所做的事情。好的,但是其他标志呢?

0 个答案:

没有答案