Как передать флаги инструменту D8? - PullRequest
0 голосов
/ 17 января 2019

D8 - это инструмент командной строки, который Android Studio и плагин Android Gradle используют для компиляции байт-кода Java проекта в байт-код DEX. Эта команда имеет несколько параметров :

- выходной путь , - файл-за класс , - без десагеринга , - основной список dex и т.д.

У меня есть несколько вопросов:

  1. Как передать эти флаги в d8 из файла сборки Gradle?
  2. Как просмотреть полную команду d8 (со всеми флагами), которую фактически использует Android Studio при сборке apk.

Я уже пытался использовать команду DexOptions со свойством additionalParameters.

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

Но похоже, что это не работает.

До D8 был инструмент DX . Параметры могут быть отправлены в DX следующим образом: enter image description here Но сейчас это не работает. Вероятно, из-за того, что D8 имя задачи дексинга не начинается со слова dex.

Я также заметил, что есть свойство android.enableD8.desugaring=true, которое может быть объявлено в файле gradle.properties. Я предполагаю, что это свойство включает - без десагеринга флаг D8.

Если это так, может быть, другие свойства также могут быть установлены через gradle.properties файл? Есть ли документация по всем доступным android.enableD8.* свойствам?

ОБНОВЛЕНИЕ:

Существует свойство multiDexKeepFile, которое может быть объявлено в каждом блоке BuildType. Похоже, это свойство делает именно то, что делает - main-dex-list флаг D8 . Хорошо, а как насчет других флагов?

...