D8是 Android Studio 和 Android Gradle 插件用来将项目的 Java 字节码编译成 DEX 字节码的命令行工具。该命令有几个选项:
--output path , --file-per-class , --no-desugaring , --main -dex-list等。
我有几个问题:
- 如何将此标志从 gradle 构建文件传递给 d8?
- 如何查看 Android Studio 在构建 apk 时实际使用的完整 d8 命令(带有所有标志)。
我已经尝试将DexOptions 命令与additionalParameters
属性一起使用。
android {
....
dexOptions {
additionalParameters = ['--main-dex-list=mylist.txt']
}
}
但它似乎不起作用。
在D8工具之前有DX工具。参数可以像这样发送到 DX:
但现在这不起作用。可能是因为现在D8
dexing 任务名称不以dex
单词开头。
我还注意到有android.enableD8.desugaring=true
可以在gradle.properties
文件中声明的属性。我假设这个属性打开了--no-desugaring标志D8
。
如果是这样,也许其他属性也可以通过gradle.properties
文件设置?是否有所有可用android.enableD8.*
属性的文档?
更新:
multiDexKeepFile
每个 BuildType 块中都有可以声明的属性。看起来这个属性与D8的 --main-dex-list标志完全一样。好的,但是其他标志呢?