Android Gradle Plugin 3.2.0 (сентябрь 2018 г.)
Для работы этой версии плагина для Android требуются следующие компоненты:
| Минимальная версия | Версия по умолчанию | Примечания | |
|---|---|---|---|
| Грэдл | 4.6 | 4.6 | Для получения более подробной информации см. раздел «Обновление Gradle» . |
| Инструменты сборки SDK | 28.0.3 | 28.0.3 | Установите или настройте инструменты сборки SDK. |
3.2.1 (октябрь 2018 г.)
Благодаря этому обновлению вам больше не нужно указывать версию для инструментов сборки SDK. Теперь плагин Android Gradle по умолчанию использует версию 28.0.3.
Новые функции
Поддержка создания пакетов приложений Android: пакет приложения — это новый формат загрузки, который включает весь скомпилированный код и ресурсы вашего приложения, откладывая генерацию и подпись APK-файлов в Google Play Store. Вам больше не нужно создавать, подписывать и управлять несколькими APK-файлами, а пользователи получают более компактные файлы для загрузки, оптимизированные для их устройств. Чтобы узнать больше, прочитайте раздел «О пакетах приложений Android» .
Поддержка повышения скорости инкрементальной сборки при использовании обработчиков аннотаций: DSL
AnnotationProcessorOptionsтеперь расширяетCommandLineArgumentProvider, что позволяет вам или автору обработчика аннотаций аннотировать аргументы для обработчика с помощью аннотаций типов свойств инкрементальной сборки . Использование этих аннотаций повышает корректность и производительность инкрементальных и кэшированных чистых сборок. Чтобы узнать больше, прочитайте раздел «Передача аргументов обработчикам аннотаций» .Инструмент миграции для AndroidX: При использовании плагина Android Gradle 3.2.0 с Android 3.2 и выше вы можете перенести локальные и Maven-зависимости вашего проекта на использование новых библиотек AndroidX, выбрав в строке меню «Рефакторинг» > «Миграция на AndroidX» . Использование этого инструмента миграции также устанавливает следующие флаги в
trueв вашем файлеgradle.properties: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 теперь доступен в репозитории Maven от Google. Чтобы использовать 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 встроенная функция multidex включалась при развертывании отладочной версии приложения на устройстве с Android API уровня 21 или выше. Теперь, независимо от того, развертываете ли вы приложение на устройство или собираете APK для выпуска, плагин Android Gradle включает встроенную функцию multidex для всех модулей, у которых
minSdkVersion=21или выше.Теперь плагин требует установки минимальной версии плагина protobuf (0.8.6), плагина Kotlin (1.2.50) и плагина Crashlytics (1.25.4).
Плагин модуля функций
com.android.featureтеперь требует использования только букв, цифр и символов подчеркивания при указании имени модуля. Например, если имя вашего модуля функций содержит дефисы, вы получите ошибку сборки. Это поведение соответствует поведению плагина динамических функций.
Исправлены ошибки
- Теперь JavaCompile поддерживает кэширование в проектах с привязкой данных. ( Проблема #69243050 )
- Улучшена процедура предотвращения ошибок компиляции для библиотечных модулей с привязкой данных. ( Проблема #77539932 )
- Теперь вы можете повторно включить настройку по запросу, если отключали её в более ранних версиях из-за некоторых непредсказуемых ошибок сборки. ( Проблема #77910727 )