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

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

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

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

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

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

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

К сожалению, это изменение нарушает сборки для проектов с подлинными экземплярами 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 – ложноположительный результат RestrictedApi в Lint для 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
Ошибка "At least one host must be specified" (Необходимо указать хотя бы один хост) при настройке схемы фильтра 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 должен проверять, не используются ли недопустимые объекты в качестве ViewGroup.
"android:host is missing" для URI с нулевым хостом;
Несовместимость KtAnalysisSessionProvider с проверками lint, представленными в 8.7.0-alpha04.
Ложное срабатывание WrongConstant при использовании PackageManager.ResolveInfoFlags.of с Kotlin