Примечания к выпуску плагина Android Gradle 8.10

Репозиторий JCenter стал доступен только для чтения 31 марта 2021 года. Более подробную информацию см. в разделе Обновление сервиса JCenter .

Система сборки Android Studio основана на Gradle, а плагин Android Gradle добавляет несколько функций, специфичных для сборки приложений Android. Хотя плагин Android Gradle (AGP) обычно обновляется в соответствии с Android Studio, плагин (и остальная часть системы Gradle) может работать независимо от Android Studio и обновляться отдельно.

На этой странице объясняется, как поддерживать инструменты Gradle в актуальном состоянии и что содержится в последних обновлениях. Заметки о выпуске для прошлых версий плагина Android Gradle см. в прошлых заметках о выпуске .

Чтобы узнать, что было исправлено в этой версии плагина Android Gradle, ознакомьтесь с закрытыми проблемами .

Краткий обзор предстоящих критических изменений в плагине Android Gradle см. в дорожной карте плагина Android Gradle .

Подробную информацию о настройке сборок Android с помощью Gradle можно найти на следующих страницах:

Дополнительную информацию о системе сборки Gradle см. в руководстве пользователя Gradle .

Обновите плагин Android Gradle

При обновлении Android Studio вы можете получить запрос на автоматическое обновление плагина Android Gradle до последней доступной версии. Вы можете принять обновление или вручную указать версию на основе требований сборки вашего проекта.

Вы можете указать версию плагина в меню Файл > Структура проекта > Проект в Android Studio или в файле build.gradle.kts верхнего уровня. Версия плагина применяется ко всем модулям, созданным в этом проекте Android Studio. Следующий пример устанавливает версию плагина 8.10.0 из файла build.gradle.kts :

Котлин

plugins {
    id("com.android.application") version "8.10.0" apply false
    id("com.android.library") version "8.10.0" apply false
    id("org.jetbrains.kotlin.android") version "2.1.20" apply false
}

Круто

plugins {
    id 'com.android.application' version '8.10.0' apply false
    id 'com.android.library' version '8.10.0' apply false
    id 'org.jetbrains.kotlin.android' version '2.1.20' apply false
}

Внимание: не следует использовать динамические зависимости в номерах версий, например 'com.android.tools.build:gradle:8.10.+' . Использование этой функции может привести к неожиданным обновлениям версий и трудностям в устранении различий версий.

Если указанная версия плагина не была загружена, Gradle загрузит ее при следующей сборке проекта или при нажатии Файл > Синхронизировать проект с файлами Gradle в строке меню Android Studio.

Обновление Gradle

При обновлении Android Studio вам может быть предложено также обновить Gradle до последней доступной версии. Вы можете принять обновление или вручную указать версию на основе требований сборки вашего проекта.

В следующей таблице перечислены версии Gradle, необходимые для каждой версии плагина Android Gradle. Для лучшей производительности следует использовать последнюю возможную версию как Gradle, так и плагина.

Версия плагина Минимально необходимая версия Gradle
8.9 8.11.1
8.8 8.10.2
8.7 8.9
8.6 8.7
8.5 8.7
8.4 8.6
8.3 8.4
8.2 8.2
8.1 8.0
8.0 8.0
7.4 7.5

Старые версии

Версия плагина Требуемая версия Gradle
7.3 7.4
7.2 7.3.3
7.1 7.2
7.0 7.0
4.2.0+ 6.7.1
4.1.0+ 6.5+
4.0.0+ 6.1.1+
3.6.0 - 3.6.4 5.6.4+
3.5.0 - 3.5.4 5.4.1+
3.4.0 - 3.4.3 5.1.1+
3.3.0 - 3.3.3 4.10.1+
3.2.0 - 3.2.1 4.6+
3.1.0+ 4.4+
3.0.0+ 4.1+
2.3.0+ 3.3+
2.1.3 - 2.2.3 2.14.1 - 3.5
2.0.0 - 2.1.2 2.10 - 2.13
1.5.0 2.2.1 - 2.13
1.2.0 - 1.3.1 2.2.1 - 2.9
1.0.0 - 1.1.3 2.2.1 - 2.3

Вы можете указать версию Gradle в меню Файл > Структура проекта > Проект в Android Studio или обновить версию Gradle с помощью командной строки. Предпочтительным способом является использование инструмента командной строки Gradle Wrapper , который обновляет скрипты gradlew . Следующий пример устанавливает версию Gradle на 8.10 с помощью Gradle Wrapper. Обратите внимание, что вам нужно выполнить эту команду дважды , чтобы обновить как Gradle, так и сам Gradle Wrapper (для получения дополнительной информации см. Обновление Gradle Wrapper ).

gradle wrapper --gradle-version 8.10

Однако в некоторых случаях это может не сработать, например, если вы только что обновили AGP, и он больше не совместим с текущей версией Gradle. В этом случае вам необходимо отредактировать ссылку на дистрибутив Gradle в файле gradle/wrapper/gradle-wrapper.properties . В следующем примере устанавливается версия Gradle 8.10 в файле gradle-wrapper.properties .

...
distributionUrl = https\://services.gradle.org/distributions/gradle-8.10-bin.zip
...

Совместимость плагина Android Gradle и Android Studio

Система сборки Android Studio основана на Gradle, а плагин Android Gradle (AGP) добавляет несколько функций, специфичных для сборки приложений Android. В следующей таблице указано, какая версия AGP требуется для каждой версии Android Studio.

Версия Android Studio Требуемая версия AGP
Выпуск функции Meerkat | 2024.3.2 3.2-8.10
Сурикат | 2024.3.1 3.2-8.9
Выпуск функции «Божья коровка» | 2024.2.2 3.2-8.8
Божья коровка | 2024.2.1 3.2-8.7
Выпуск функции Koala | 2024.1.2 3.2-8.6
Коала | 2024.1.1 3.2-8.5
Медуза | 2023.3.1 3.2-8.4
Игуана | 2023.2.1 3.2-8.3
Ежик | 2023.1.1 3.2-8.2
Жираф | 2022.3.1 3.2-8.1
Фламинго | 2022.2.1 3.2-8.0

Старые версии

Версия Android Studio Требуемая версия AGP
Электрический угорь | 2022.1.1 3.2-7.4
Дельфин | 2021.3.1 3.2-7.3
Бурундук | 2021.2.1 3.2-7.2
Шмель | 2021.1.1 3.2-7.1
Песец | 2020.3.1 3.1-7.0

Информацию о новых возможностях плагина Android Gradle см. в примечаниях к выпуску плагина Android Gradle .

Минимальные версии инструментов для уровня API Android

Существуют минимальные версии Android Studio и AGP, которые поддерживают определенный уровень API. Использование более низких версий Android Studio или AGP, чем требуется для targetSdk или compileSdk вашего проекта, может привести к непредвиденным проблемам. Мы рекомендуем использовать последнюю предварительную версию Android Studio и AGP для работы над проектами, нацеленными на предварительные версии ОС Android. Вы можете установить предварительные версии Android Studio вместе со стабильной версией .

Минимальные версии Android Studio и AGP следующие:

уровень API Минимальная версия Android Studio Минимальная версия AGP
36.0 Сурикат | 2024.3.1 Патч 1 8.9.1
35 Выпуск функции Koala | 2024.2.1 8.6.0
34 Ежик | 2023.1.1 8.1.1
33 Фламинго | 2022.2.1 7.2

Изменения в управлении версиями (ноябрь 2020 г.)

Мы обновляем нумерацию версий плагина Android Gradle (AGP), чтобы она лучше соответствовала базовому инструменту сборки Gradle.

Вот заметные изменения:

  • Теперь AGP будет использовать семантическое управление версиями, а критические изменения будут нацелены на основные выпуски.

  • Ежегодно будет выпускаться одна основная версия AGP, соответствующая основному релизу Gradle.

  • Выпуск после AGP 4.2 будет иметь версию 7.0 и потребует обновления до версии Gradle 7.x. Каждый крупный выпуск AGP потребует крупного обновления версии в базовом инструменте Gradle.

  • API будут удалены примерно за год вперед, а заменяющие функции будут доступны одновременно. Устаревшие API будут удалены примерно через год во время следующего крупного обновления.

Совместимость

Максимальный уровень API, поддерживаемый плагином Android Gradle 8.10, — API 35. Вот дополнительная информация о совместимости:

Минимальная версия Версия по умолчанию Примечания
Градл 8.11.1 8.11.1 Более подробную информацию см. в разделе Обновление Gradle .
Инструменты сборки SDK 35.0.0 35.0.0 Установите или настройте инструменты сборки SDK.
НДК Н/Д 27.0.12077973 Установите или настройте другую версию NDK.
JDK 17 17 Более подробную информацию см. в разделе «Настройка версии JDK» .

Исправлены проблемы

Плагин Android Gradle 8.10.0

Исправленные проблемы
Плагин Android Gradle
AGP должен заявить, что поддерживает API 35, который скоро будет выпущен
AndroidComponentsExtension.addSourceSetConfigurations не работает при включении статистики
Проект «:app» не может получить доступ к «Project.group» и «Project.version» при изолированной настройке проекта в AGP 8.8.0
Скрипт инициализации 'C:\Users\mypc\AppData\Local\Temp\ijresolvers2.gradle' строка: 162
Скрипт инициализации 'C:\Users\mypc\AppData\Local\Temp\ijresolvers2.gradle' строка: 162
Невозможно удалить следующие библиотеки, упаковав их в том виде, в котором они есть
Добавить поддержку передачи информации об «изолированных сплитах» в R8
Приложение вылетает с ошибками NoClassDefFoundError и ClassNotFoundException при запуске приложения из Android Studio
Плагин Android Gradle: избегайте переопределения Sync.getDestinationDir() в PackageRenderscriptTask и ProcessJavaResTask
Используйте объединенные ресурсы Java для модульных тестов
Изолированный проект: ошибка сериализации DeclarativeSchemaModel
Дексер (D8)
Неверный обратный порт android.os.Build.VERSION_CODES_FULL для Baklava
Дешугаринг AutoClosable больше не сообщает ExecutorService.close как поддерживаемый
Ворс
Неправильное предупреждение lint для аннотации `@Parcelize` на запечатанных интерфейсах
AS 2024.3.1.4 периодически зависает при редактировании текстов Kotlin.
Ложная положительная ошибка lint для CredentialManagerSignInWithGoogle
ConcurrentModificationException в проверке Aligned16KB
Lint: AGP 8.10.0-alpha05 вызывает множество ложных срабатываний SyntheticAccessor
Сделать возможным включение NewApi в тестовых источниках
Какой эффект дает нажатие кнопки «LintIdeFix» после проверки кода в Android Studio?
Ошибка в тексте предупреждающего сообщения: «Необязательно; `Build.VERSION.SDK_INT >= Build.VERSION_CODES.O` здесь *никогда* не бывает истинным (`SDK_INT` ≥ 26 и < 31)»
Усадочный аппарат (R8)
Невозможно создать подписанный APK после обновления до AGP 8.9.0
Анализ свойства «записано-до-чтения» в местах выделения памяти приводит к ошибке при генерации classfile
Проблема с Java SPI в R8 shrinker версий 8.6.*, 8.7.*, 8.8.0
ClassCastException из безопасного приведения в классе init
Проблема сокращения ресурсов в AGP 8.9, приводящая к отсутствию ресурсов в динамических модулях функций
Невозможно вызвать com.android.tools.r8.internal.H5.x()