Плагин Android Gradle 8.7.0 (октябрь 2024 г.)

Плагин Android Gradle 8.7.0 – это крупный выпуск, в который входит множество новых функций и улучшений.

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

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

Минимальная версия Версия по умолчанию Примечания
"Gradle" 8.9 8.9 Подробнее о том, как обновить Gradle…"
Инструменты сборки SDK 34.0.0 34.0.0 Установите или настройте инструменты сборки SDK.
NDK Н/Д 27.0.12077973 Установите или настройте другую версию NDK.
JDK 17 17 "Подробнее о настройке версии JDK…"

Изменение поведения Lint

Начиная с версии 8.7.0-alpha08 плагина Android Gradle, если при запуске lint с помощью Gradle возникает ошибка LintError, задача анализа lint вызывает исключение. Это изменение предотвращает кеширование редких ошибок в кеше сборки.

К сожалению, это изменение нарушает сборки проектов с подлинными экземплярами LintError в файлах базовых показателей линтера. В сообщении об ошибке содержится информация о том, какие проверки lint вызывают проблему. В некоторых случаях проблему можно решить, обновив соответствующую зависимость библиотеки. Если нет, вы можете отключить проблемную проверку Lint, пока автор библиотеки не исправит ее.

Устраненные проблемы

Плагин Android Gradle 8.7.3

Устраненные проблемы
Lint
При запуске lint появляется много предупреждений о том, что отсутствует метод API анализа
Ложноположительный результат проверки lint: разрешение android.permission.SCHEDULE_EXACT_ALARM предоставляется только системным приложениям

Плагин Android Gradle 8.7.2

Устраненные проблемы
Lint
AGP 8.7.0 - Lint False Positive RestrictedApi on NavOptionsBuilder.popUpTo
Shrinker (R8)
[R8 8.6.27] Реализация метода заменена на `throw null`
При использовании файлов ProGuard для Android по умолчанию с текущей версией R8 возникает предупреждение
MissingStartupProfileItemsDiagnostic приводит к сбою клиента Gradle с ошибкой нехватки памяти, если сообщение слишком большое

Плагин Android Gradle 8.7.1

Устраненные проблемы
Плагин Android Gradle
В документации по AGP много разделов "Будет добавлено"
Lint
AGP 8.6.1: регрессия – ошибка линтера WrongConstant при использовании [Int].toLong() внутри @LongDef в Kotlin
Ошибка "Необходимо указать хотя бы один хост" при настройке схемы intent-filter http или https

Плагин Android Gradle 8.7.0

Устраненные проблемы
Плагин Android Gradle
AGP should claim that it supports API 35 that is about to ship
AGP 8.5: выполняется больше задач mergeDebugResources, из-за чего сборки выполняются медленнее
Сделать NDK 27 NDK по умолчанию в AGP.
AGP should claim that it supports API 35 that is about to ship
AGP should claim that it supports API 35 that is about to ship
Не удалось запустить Android Lint из-за ошибки NoSuchFileException
BuildType#initWith копирует блок постобработки, но конфигурация ProGuard не применяется
Невозможно объединить теги foregroundServiceType
Не удалось запустить Android Lint из-за ошибки NoSuchFileException
Lint
Lint должен проверять недопустимые объекты, используемые в качестве ViewGroups
"Отсутствует android:host" для URI с нулевым хостом
Несовместимость KtAnalysisSessionProvider с проверками lint, добавленными в версии 8.7.0-alpha04
"Ложное срабатывание" WrongConstant при использовании PackageManager.ResolveInfoFlags.of с Kotlin