Плагин Android Gradle 3.2.0 (сентябрь 2018 г.)
Для работы этой версии плагина Android требуются:
| Минимальная версия | Версия по умолчанию | Примечания | |
|---|---|---|---|
| Gradle | 4,6 | 4,6 | Подробнее о том, как обновить Gradle… |
| Инструменты сборки SDK | 28.0.3 | 28.0.3 | Установите или настройте инструменты сборки SDK. |
3.2.1 (октябрь 2018 г.)
После этого обновления вам больше не нужно указывать версию для инструментов сборки SDK. Теперь плагин Android Gradle по умолчанию использует версию 28.0.3.
Новые функции
-
Поддержка создания наборов Android App Bundle. Набор App Bundle – это новый формат загрузки, который содержит весь скомпилированный код и ресурсы приложения. Google Play автоматически создает и подписывает APK-файлы на основе такого набора. Вам больше не нужно создавать, подписывать и поддерживать несколько APK, а пользователи получают оптимизированные для их устройств файлы меньшего размера. Подробнее о наборах Android App Bundle…
-
Улучшенная поддержка скорости инкрементной сборки при использовании процессоров аннотаций. DSL
AnnotationProcessorOptionsтеперь расширяетCommandLineArgumentProvider, что позволяет вам или автору процессора аннотаций добавлять аннотации к аргументам процессора с помощью аннотаций типа свойства инкрементной сборки. Использование этих аннотаций повышает корректность и эффективность инкрементных и кешированных чистых сборок. Подробнее о том, как передавать аргументы процессорам аннотаций… -
Инструмент переноса для AndroidX. Если вы используете плагин Android Gradle 3.2.0 с Android 3.2 или более поздней версии, вы можете перенести локальные зависимости и зависимости Maven проекта на новые библиотеки AndroidX, выбрав в строке меню Refactor > Migrate to AndroidX (Рефакторинг > Перенести на AndroidX). При использовании этого инструмента переноса в файле
gradle.propertiesдля следующих флагов будет установлено значениеtrue:-
android.useAndroidX: если задано значениеtrue, плагин Android использует подходящую библиотеку AndroidX вместо библиотеки поддержки. Если этот флаг не указан, плагин по умолчанию задает для него значениеfalse. -
android.enableJetifier: если задано значениеtrue, плагин Android автоматически переносит существующие сторонние библиотеки в AndroidX, переписывая их двоичные файлы. Если этот флаг не указан, плагин по умолчанию задает для него значениеfalse. Этот флаг можно установить в значениеtrue, только если флагandroid.useAndroidXтакже имеет значениеtrue. В противном случае возникнет ошибка сборки.Подробнее о библиотеках AndroidX…
-
-
Новый инструмент для сжатия кода – R8. R8 – это новый инструмент для сжатия и обфускации кода, который заменяет ProGuard. Чтобы начать использовать предварительную версию R8, добавьте в файл
gradle.propertiesпроекта следующие строки:android.enableR8 = true
android.enableR8 = true
Изменения в поведении
-
Десахаризация с помощью D8 теперь включена по умолчанию.
-
Теперь AAPT2 доступен в репозитории Google Maven. Чтобы использовать AAPT2, убедитесь, что в файле
build.gradleесть зависимостьgoogle(), как показано ниже:buildscript { repositories { google() // here jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.2.0' } } allprojects { repositories { google() // and here jcenter() }
buildscript { repositories { google() // here jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.2.0' } } allprojects { repositories { google() // and here jcenter() }
-
Поддержка multidex теперь включена по умолчанию. В предыдущих версиях Android Studio при развертывании отладочной версии приложения на устройстве с Android API уровня 21 или выше автоматически включалась поддержка нескольких файлов DEX. Теперь при развертывании на устройстве или создании APK-файла для выпуска плагин Android Gradle включает поддержку multidex для всех модулей, в которых задано значение
minSdkVersion=21или выше. -
Теперь плагин требует использовать минимальные версии плагина protobuf (0.8.6), плагина Kotlin (1.2.50) и плагина Crashlytics (1.25.4).
-
Плагин модуля функций,
com.android.feature, теперь позволяет использовать в названиях модулей только буквы, цифры и символы подчеркивания. Например, если в названии модуля функции есть дефисы, вы получите ошибку сборки. Это соответствует поведению плагина динамических функций.
Исправлены ошибки.
- Теперь в проектах с привязкой данных можно кешировать задачи JavaCompile. (ошибка № 69243050)
- Улучшена компиляция модулей библиотеки с привязкой данных. (проблема № 77539932)
- Теперь вы можете снова включить configure-on-demand, если отключили его в предыдущих версиях из-за непредсказуемых ошибок сборки. (Проблема № 77910727)