Плагин 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, если при запуске lint с использованием Gradle возникает LintError , задача анализа 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 - ложный положительный результат проверки Lint 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 предоставляется только системным приложениям