Плагин 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. Плагин 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» в строке меню. Использование этого инструмента миграции также устанавливает в файле 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()
                }
              
  • Собственный мультидекс теперь включен по умолчанию. Предыдущие версии Android Studio включали встроенный мультидекс при развертывании отладочной версии приложения на устройстве с Android API уровня 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 )