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