Плагин 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 )