Плагин 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 теперь требует использования только букв, цифр и символов подчёркивания при указании имени модуля. Например, если имя модуля функций содержит дефисы, возникнет ошибка сборки. Это поведение аналогично поведению плагина динамических функций.

Исправления ошибок