Плагин Android Gradle 8.4.0 (апрель 2024 г.)

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

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

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

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

Ниже перечислены новые функции плагина Android Gradle 8.4.

Выпуск исправлений

Ниже приведен список исправлений в Android Studio Jellyfish и плагине Android Gradle 8.4.

Android Studio Jellyfish | 2023.3.1 Patch 2 и AGP 8.4.2 (июнь 2024 г.)

Важное обновление системы безопасности. Уязвимость системы безопасности в плагине GitHub, доступном в Android Studio Iguana | 2023.2.1 и более поздних версиях, может привести к тому, что токены доступа станут доступны посторонним лицам.

Исправление. Компания Jetbrains устранила проблему в продуктах на платформе IntelliJ. Исправление доступно в Android Studio Jellyfish | 2023.3.1 Patch 2 (2023.3.1.20).

Если у вас уже есть сборка Android Studio из стабильного канала, вы можете получить обновление, нажав Help > Check for Updates (Справка > Проверить наличие обновлений) или Android Studio > Check for Updates (Android Studio > Проверить наличие обновлений) на macOS. В противном случае скачайте последнюю стабильную сборку.

Кроме того, если вы активно использовали функцию запросов на извлечение GitHub в IDE, мы настоятельно рекомендуем отозвать все токены GitHub, используемые плагином. Поскольку плагин может использовать интеграцию OAuth или персональные токены доступа (PAT), проверьте оба варианта и отмените их, если это необходимо:

  • Чтобы отозвать доступ для интеграции OAuth, перейдите в раздел Приложения > Авторизованные приложения OAuth и отзовите доступ для токена JetBrains IDE Integration.
  • Чтобы отозвать доступ для персональных токенов доступа, перейдите в раздел Персональные токены доступа и удалите токен, выданный для плагина GitHub. По умолчанию используется название IntelliJ IDEA GitHub integration plugin, но вы можете задать другое.

После отзыва доступа для токенов вам нужно будет снова настроить плагин, чтобы все его функции, в том числе операции Git, работали.

Приносим извинения за неудобства и настоятельно рекомендуем всем пользователям немедленно обновить ПО, чтобы защитить свой код и данные.

В этом небольшом обновлении также исправлены ошибки.

Android Studio Jellyfish | 2023.3.1 Patch 1 и AGP 8.4.1 (май 2024 г.)

В этом небольшом обновлении исправлены ошибки.

Классы библиотеки уменьшены

Начиная с версии 8.4 плагина Android Gradle, если проект библиотеки Android минимизирован, для публикации между проектами будут опубликованы сжатые классы программы. Это означает, что если приложение зависит от уменьшенной версии подпроектов библиотеки Android, то APK будет содержать уменьшенные классы библиотеки Android. Если в APK отсутствуют классы, вам может потребоваться изменить правила хранения в библиотеке.

Если вы создаете и публикуете AAR-файл, локальные JAR-файлы, от которых зависит ваша библиотека, будут включены в AAR-файл без сжатия. Это означает, что сжиматель кода не будет применяться к ним.

Чтобы вернуться к предыдущему поведению, задайте значение android.disableMinifyLocalDependenciesForLibraries в файле gradle.properties и сообщите об ошибке. В будущих версиях AGP этот флаг будет удален.

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

Плагин Android Gradle 8.4.2

Устраненные проблемы
Плагин Android Gradle
AGP 8.4, похоже, нарушает скачивание GMD в CI

Плагин Android Gradle 8.4.1

Устраненные проблемы
Плагин Android Gradle
Разрешить подавлять предупреждение о том, что JDK 21 прекращает поддержку таргетинга на Java 8
Dexer (D8)
java.lang.VerifyError: Verifier rejected class
Ошибка преобразования формата R8 новой версии после обфускации
В промежуточных сборках может не быть полного синтетического контента для заглушек.

Плагин Android Gradle 8.4.0

Устраненные проблемы
Плагин Android Gradle
Улучшено сообщение об ошибке, возникающей при попытке использовать параметр `--release` для JavaCompile
Отключить кеширование MergeSourceSetFolders с помощью аннотации @DoNotCacheByDefault
Не удается задать версию JaCoCo в AGP 8.2.0
В DynamicFeatureBuildType отсутствует isDebuggable
Классы минимизированной библиотеки неправильно публикуются для использования в других проектах
Предоставление API Variant#sources, который исключает сгенерированные файлы
Модели AGP не содержат зависимостей проекта java-platform
ExtractAarTransform создает невоспроизводимый файл classes.jar для файлов AAR, в которых нет файла classes.jar
Разрешить настраивать sourceInformation из ComposeOptions
Не удается найти поле sdk_runtime в сообщении android.bundle.DeviceSpec
Поддержка compileOnlyApi
R8 не работает с модулем библиотеки, когда обработка ресурсов отключена
Добавлена возможность изменять название объекта во время преобразования
Добавление выходных данных задачи в srcDir объекта sourceSets.androidMain.resources не создает зависимостей задач
В AndroidPluginVersion.toString() отсутствуют нули в начале
Функция Artifacts.add(FileSystemLocation) должна быть более строгой.
AGP 8.3.0-alpha11 создает рабочую версию APK, которая аварийно завершает работу при запуске с ошибкой android.content.res.Resources$NotFoundException
Задача установки плагина Android Gradle 8.2.0 завершается с ошибкой в проекте, который использует динамические функции
Сбой компиляции AIDL с исключением IndexOutOfBoundsException: индекс 0 выходит за пределы длины 0
Проблема с обработкой дополнительных входных данных в MergeJavaResourcesTask
AGP 8.3.0-alpha02 зависит от библиотек с известными уязвимостями
Для выбранного шаблона действия требуется проект с зависимостями androidx.*
AGP Upgrade Assistent ошибочно удаляет consumerProguardFiles из модуля
Ассистент обновления AGP бесконечно загружается
SourceDirectories#static не должен зависеть от задачи GenerateBuildConfig
Compose Preview не может разрешить классы из транзитивной зависимости
AGP 8.3 нарушает работу zipApksFor Task
Артефакты AndroidX Desktop, упакованные в APK для Android
Lint
GradleModelMocker из фреймворка тестирования Lint не позволяет задать версию библиотеки
Lint K2 UAST: UCallableReferenceExpression сообщает о неправильном значении qualifierType
Ошибочное оповещение Lint при использовании useK2Uast=true с перегруженными функциями
[BuildTool/Lint] Проверка свойства конструктора ChecksSdkIntAtLeast
Интеграция с Lint
Lint не может устранить неоднозначность зависимости KMP