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 )