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

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

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

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

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

Изменение поведения линта

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

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

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

Плагин Android Gradle 8.7.0

Исправленные проблемы
Плагин Android Gradle
AGP должен заявить, что поддерживает API 35, который скоро будет выпущен
AGP 8.5: выполняется гораздо больше задач «mergeDebugResources», что замедляет сборку
Сделайте ndk 27 NDK по умолчанию в AGP.
AGP должен заявить, что поддерживает API 35, который скоро будет выпущен
AGP должен заявить, что поддерживает API 35, который скоро будет выпущен
Выполнение Android lint завершилось с ошибкой NoSuchFileException
BuildType#initWith копирует блок постобработки, но конфигурация ProGuard не применяется.
Невозможно объединить теги foregroundServiceType
Выполнение Android lint завершилось с ошибкой NoSuchFileException
Линт
Lint должен проверять наличие недопустимых объектов, используемых в качестве ViewGroups.
«android:host отсутствует» для URI с нулевым хостом
Несовместимость KtAnalysisSessionProvider с проверками lint, появившимися в версии 8.7.0-alpha04
«Ложное срабатывание» WrongConstant при использовании PackageManager.ResolveInfoFlags.of с Kotlin

Плагин Android Gradle 8.7.1

Исправленные проблемы
Плагин Android Gradle
Документы agp имеют много подлежащих уточнению
Линт
AGP 8.6.1: Регрессия — ошибка линтинга WrongConstant при использовании [Int].toLong() внутри @LongDef в Kotlin
Ошибка lint «Необходимо указать хотя бы один хост» при настройке схемы фильтра намерений http или https

Плагин Android Gradle 8.7.2

Исправленные проблемы
Линт
AGP 8.7.0 — ложный положительный результат проверки RestrictedApi в NavOptionsBuilder.popUpTo
Усадочный аппарат (R8)
[R8 8.6.27] Реализация метода заменена на `throw null`
Файлы Android Proguard по умолчанию выдают предупреждение при использовании с текущей версией R8
MissingStartupProfileItemsDiagnostic приводит к сбою клиента Gradle с ошибкой нехватки памяти, если сообщение слишком большое.

Плагин Android Gradle 8.7.3

Исправленные проблемы
Линт
Множество предупреждений об отсутствии методов анализа API при запуске lint
Ложноположительная проверка lint android.permission.SCHEDULE_EXACT_ALARM предоставляется только системным приложениям.