Плагин Android Gradle 8.2.0 (ноябрь 2023 г.)
Оптимизируйте свои подборки
Сохраняйте и классифицируйте контент в соответствии со своими настройками.
Плагин Android Gradle 8.2.0 — это крупный релиз, включающий множество новых функций и улучшений.
Совместимость
Максимальный уровень API, поддерживаемый плагином Android Gradle 8.2, — API 34. Вот дополнительная информация о совместимости:
Новый макрос для указания пути JDK
#GRADLE_LOCAL_JAVA_HOME
— это новый макрос, который можно использовать для указания пути JDK. Это делает более безопасным и простым указание домашнего пути Java, используемого для выполнения демона Gradle (фонового процесса) для вашего проекта. Выбор пути сохраняется в поле java.home
в файле .gradle/config.properties
. Задайте это поле через настройки Gradle JDK в Android Studio: Файл (или Android Studio на macOS) > Настройки > Сборка, выполнение, развертывание > Инструменты сборки > Gradle .
Новые проекты будут использовать #GRADLE_LOCAL_JAVA_HOME
по умолчанию. Существующие проекты будут автоматически перенесены в новый макрос после успешной синхронизации, если вы еще не используете макрос вроде #JAVA_HOME
.
Основные преимущества нового макроса следующие:
- Вы можете вручную изменить путь JDK, чтобы запустить синхронизацию, не открывая предварительно проект.
- Меньше ошибок, связанных с несовместимостью версий Gradle и проекта JDK, поскольку есть единый источник достоверной информации для выбора Gradle JDK.
Исправлены проблемы
Плагин Android Gradle 8.2.0
Исправленные проблемы |
---|
Плагин Android Gradle | Пользовательские типы источников должны создавать многовариантные исходные наборы | Проверка версии SDK не обрабатывает пользователей расширений SDK | DependenciesInfoBuilder требует обновления API + документация | DexingNoClasspathTransform (minSdk >= 24) с целевой версией Java 11 завершается ошибкой из-за отсутствия вложенных элементов | DslExtension.Builder.extendProjectWith() не работает так, как описано в Groovy | Добавьте API VariantSelector.withFlavor, который не использует kotlin.Pair | AndroidLintAnalysisTask ( :lintAnalyzeExternalRelease) имеет пропуск кэша, поскольку `proguard.txt` был изменен | Объединенный манифест приложения содержит атрибуты extractNativeLibs и useEmbeddedDex из зависимостей | AIDL не работает с build-tools 33.0.0 | AGP: предоставить путь к инструменту AIDL и файлу фреймворка AIDL как общедоступному API | Запрос: пусть IDE предложит исправление для «PermittedSubclasses требует ASM9» | При компиляции AGP использовать целевой байт-код 17 | Удалить VariantManager.getModifiedName | AndroidTest.packaging.jniLibs.keepDebugSymbols не влияет на упаковку androidTest | Тестовые задачи GMD-инструментария зависают и при повторной попытке начинают давать сбой | generateLocaleConfig в agp 8.1.0 использует недетерминированный порядок, нарушая воспроизводимые сборки | ProcessApplicationManifest.navigationJsons содержит файлы с абсолютными путями | Доступ к GradleBuildProject.Builder через AnalyticsConfiguratorService не допускается после создания AnalyticsService. | AndroidTest.packaging.jniLibs.keepDebugSymbols не влияет на упаковку androidTest | Компиляция разрешена для недопустимых значений цвета | Неправильный «ReplaceWith» для VariantBuilder | Gradle 8.1 нарушает кэширование конфигурации из-за .gradle/.android/analytics.settings | Сообщения об устаревании не используют `ReplaceWith` | Опишите способ получения версии NDK по умолчанию | Для работы плагина Android Gradle требуется Java 17. | Несовместимость ASM Transform и toAppend() | Исправление ошибок LintErrors при запуске lint с K2 UAST через Gradle в проекте KMP. | Поддержка missingDimensionStrategy уровня варианта и, возможно, сопоставление типа/разновидности сборкиFallback | `android.injected.studio.version` был удален в Android Studio Giraffe | Добавить возможность отключения AndroidXDependencyCheck | generateLocaleConfig в agp 8.1.0 использует недетерминированный порядок, нарушая воспроизводимые сборки | Объявляйте требования к версии R8 / D8 в метаданных AAR (например, для coreLibraryDesugaring и нового API out-of-lining) | Предупреждение синхронизации: «GradleBuildProject.Builder не должен быть доступен через AnalyticsConfiguratorService после создания AnalyticsService» | Обновление до версии Gradle 8.2 или RC | Невозможно получить доступ к 'java.lang.Comparable' | androidResources недоступен в модуле библиотеки Android | Выполнение задачи «:app:mergeReleaseClasses» не удалось после обновления AGP с версии 8.0.2 до версии 8.1.0 | Gradle 8.1 нарушает кэширование конфигурации из-за .gradle/.android/analytics.settings | [AGP 8.1.0] Тест ./gradlew завершается ошибкой «Невозможно найти выходные данные манифеста», если оба параметра splits.abi.isEnable и testOptions.unitTests.isIncludeAndroidResources имеют значение true | Android Studio Giraffe не учитывает versionCodeOverride с AGP 8.1 | AGP 8.1.0 удаляет приложение после запуска инструментальных тестов — 7.4.2 этого не делает | Преобразование APK приводит к ошибке ListingFileRedirectTask | РЕГРЕССИЯ HEDGEHOG: Кнопка «Выполнить» задерживается на несколько секунд (Создание спецификации) |
|
Дексер (D8) | Включить собственные записи и запечатанные классы при дексировании для min-api 34 и выше |
|
Ворс | Проверка экземпляра lint не обрабатывает AppComponentFactory должным образом | Альфа-версии Lint 8.2.0 по-прежнему не поддерживают импорт функций верхнего уровня в Kotlin | Добавьте опцию, позволяющую не включать номера строк и столбцов в базовую линию lint. | Добавьте опцию, позволяющую не включать номера строк и столбцов в базовую линию lint. | Тесты Lint не поддерживают возможности языка Java 17 | Bumblebee 2021.1.1 Patch 1 сообщает, что старая версия (20030203.000550) commons-io новее, чем 2.11.0. | Альфа-версии Lint 8.2.0 по-прежнему не поддерживают импорт функций верхнего уровня в Kotlin | Bumblebee 2021.1.1 Patch 1 сообщает, что старая версия (20030203.000550) commons-io новее, чем 2.11.0. | Android Studio ошибочно помечает указанную версию как устаревшую. | Lint игнорирует проблему UseValueOf при использовании K2 UAST | Android Lint выявил неожиданные проблемы в другом проекте | Android Lint дает сбой в библиотеке KMP, у которой «свойство 'variantInputs.name' не имеет настроенного значения». |
|
Интеграция Линта | Ошибка линтинга DuplicatePlatformClasses из-за зависимости testImplementation |
|
Усадочный аппарат (R8) | java.lang.VerifyError: Верификатор отклонил класс | Сборка зависает на :minifyReleaseWithR8 при использовании библиотеки Apache POI | Kotlin 1.9 приводит к уничтожению лямбда-выражений Kotlin R8, если удалены проверки null |
|
Плагин Android Gradle 8.2.1
Исправленные проблемы |
---|
Плагин Android Gradle | Не запускайте задачу дексирования для классов подпроектов, если они уже дексированы с помощью преобразований артефактов. | Плагин Android Gradle не работает с JavaVersion.VERSION_11 и OpenJDK 21 ea |
|
Дексер (D8) | Desugar записи для Android U |
|
Усадочный аппарат (R8) | R8 генерирует сломанный dex, что приводит к исключению приведения класса во время выполнения | R8 приводит к изменению интерфейса на недоступный интерфейс | Сбой R8 Flurry SDK с AGP 8.2.0 | Android - R8 приводит к сбою подкласса LinearLayoutManager | ClassCastException в R8 при включенной переупаковке и отключенных сжатии, обфускации и оптимизации | R8 застрял в BridgeAnalyzer.analyzeMethod | R8 v8.2.33, сбой выполнения «java.lang.VerifyError: Неправильный тип в стеке операндов» после обновления |
|
Плагин Android Gradle 8.2.2
Исправленные проблемы |
---|
Плагин Android Gradle | Невозможно установить версию JaCoCo в AGP 8.2.0 |
|
Дексер (D8) | [библиотека desugared] Библиотека desugared версии 2.1 несовместима с предыдущими версиями R8 | Оптимизации работают даже только с D8? |
|
Усадочный аппарат (R8) | [R8 8.3.21] R8 8.3.21 на 1,57 МБ больше, чем R8 8.1.56 | class.getInterfaces() возвращает пустой |
|
Контент и образцы кода на этой странице предоставлены по лицензиям. Java и OpenJDK – это зарегистрированные товарные знаки корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2025-06-07 UTC.
[[["Прост для понимания","easyToUnderstand","thumb-up"],["Помог мне решить мою проблему","solvedMyProblem","thumb-up"],["Другое","otherUp","thumb-up"]],[["Отсутствует нужная мне информация","missingTheInformationINeed","thumb-down"],["Слишком сложен/слишком много шагов","tooComplicatedTooManySteps","thumb-down"],["Устарел","outOfDate","thumb-down"],["Проблема с переводом текста","translationIssue","thumb-down"],["Проблемы образцов/кода","samplesCodeIssue","thumb-down"],["Другое","otherDown","thumb-down"]],["Последнее обновление: 2025-06-07 UTC."],[],[]]