Плагин 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 App Bundles: App Bundle — это новый формат загрузки, который включает весь скомпилированный код и ресурсы вашего приложения, откладывая генерацию APK и подписание в Google Play Store. Вам больше не нужно создавать, подписывать и управлять несколькими APK, а пользователи получают меньшие загрузки, оптимизированные для их устройств. Чтобы узнать больше, прочитайте About Android App Bundles .
Поддержка улучшенных скоростей инкрементальной сборки при использовании процессоров аннотаций:
AnnotationProcessorOptions
DSL теперь расширяетCommandLineArgumentProvider
, что позволяет вам или автору процессора аннотаций аннотировать аргументы для процессора с помощью аннотаций типа свойства инкрементальной сборки . Использование этих аннотаций улучшает правильность и производительность инкрементальных и кэшированных чистых сборок. Чтобы узнать больше, прочитайте Передача аргументов процессорам аннотаций .Инструмент миграции для AndroidX: при использовании плагина Android Gradle 3.2.0 с Android 3.2 и выше вы можете перенести локальные и Maven-зависимости вашего проекта для использования новых библиотек AndroidX, выбрав Refactor > Migrate to AndroidX в строке меню. Использование этого инструмента миграции также устанавливает следующие флаги в
true
в вашем файлеgradle.properties
:android.useAndroidX
: Если установлено значениеtrue
, плагин Android использует соответствующую библиотеку AndroidX вместо Support Library. Если этот флаг не указан, плагин по умолчанию устанавливает его в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 включали собственный 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 )