Плагин Android Gradle 3.2.0 (сентябрь 2018 г.)
Для этой версии плагина для Android требуется следующее:
| Минимальная версия | Версия по умолчанию | Примечания | |
|---|---|---|---|
| Грейдл | 4.6 | 4.6 | Более подробную информацию см. в разделе Обновление Gradle . |
| Инструменты сборки SDK | 28.0.3 | 28.0.3 | Установите или настройте инструменты сборки SDK. |
3.2.1 (октябрь 2018 г.)
С этим обновлением вам больше не нужно указывать версию SDK Build Tools. Плагин Android Gradle теперь по умолчанию использует версию 28.0.3.
Новые функции
Поддержка создания пакетов приложений Android: Пакет приложений — это новый формат загрузки, который включает весь скомпилированный код и ресурсы вашего приложения, откладывая создание APK-файлов и их подписание в Google Play. Вам больше не нужно создавать, подписывать и управлять несколькими 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() }
Нативная мультидекс-поддержка теперь включена по умолчанию. В предыдущих версиях Android Studio она включалась при развертывании отладочной версии приложения на устройстве с API Android уровня 21 или выше. Теперь, независимо от того, развертываете ли вы приложение на устройстве или собираете APK для релиза, плагин Android Gradle включает нативную мультидекс-поддержку для всех модулей, для которых
minSdkVersion=21или выше.Плагин теперь требует использования минимальной версии плагина protobuf (0.8.6), плагина Kotlin (1.2.50) и плагина Crashlytics (1.25.4).
Плагин модуля функций
com.android.featureтеперь требует использования только букв, цифр и символов подчёркивания при указании имени модуля. Например, если имя модуля функций содержит дефисы, возникнет ошибка сборки. Это поведение аналогично поведению плагина динамических функций.
Исправления ошибок
- JavaCompile теперь кэшируется в проектах с привязкой данных. ( Проблема № 69243050 )
- Улучшено предотвращение компиляции для библиотечных модулей с привязкой данных. ( Проблема № 77539932 )
- Теперь вы можете повторно включить настройку по требованию, если вы отключили ее в более ранних версиях из-за некоторых непредсказуемых ошибок сборки. ( Проблема № 77910727 )