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

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

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

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

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

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

Выпуски патчей

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

Android-студия Медуза | Обновление 2 2023.3.1 и AGP 8.4.2 (июнь 2024 г.)

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

Исправление: Jetbrains устранила проблему в продуктах платформы IntelliJ , и теперь исправление доступно в Android Studio Jellyfish | 2023.3.1 Патч 2 (2023.3.1.20) .

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

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

  • Чтобы отозвать доступ для интеграции OAuth, перейдите в раздел «Приложения» > «Авторизованные приложения OAuth» и отзовите доступ для токена интеграции JetBrains IDE .
  • Чтобы отозвать доступ для PAT, перейдите в раздел «Токены личного доступа» и удалите токен, выданный для плагина GitHub. Имя токена по умолчанию — плагин интеграции IntelliJ IDEA GitHub , но вы можете использовать собственное имя.

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

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

Это незначительное обновление также включает исправления ошибок .

Android-студия Медуза | Обновление 1 2023.3.1 и AGP 8.4.1 (май 2024 г.)

Это незначительное обновление включает в себя исправления ошибок .

Библиотечные классы сокращены

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

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

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

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

Плагин Android Gradle 8.4.0

Исправленные проблемы
Плагин Android Gradle
Улучшено сообщение об ошибке, объясняющее, почему параметр --release нельзя использовать для JavaCompile.
Отключите кеширование MergeSourceSetFolders с помощью @DoNotCacheByDefault.
Невозможно установить версию JaCoCo в AGP 8.2.0.
DynamicFeatureBuildType отсутствует isDebuggable
Минимизированные классы библиотеки не публикуются правильно для использования между проектами.
Предоставить API Variant#sources, исключающий сгенерированные файлы.
Модели AGP не содержат зависимостей проекта Java-платформы.
ExtractAarTransform создает невоспроизводимый файлclass.jar для файлов aar, у которых нет файлаclasses.jar.
Разрешить настройку sourceInformation из ComposeOptions
Невозможно найти поле: sdk_runtime в сообщении android.bundle.DeviceSpec.
Поддержка compileOnlyApi
R8 выходит из строя в библиотечном модуле, когда обработка ресурсов отключена
Добавлена ​​возможность менять имя артефакта во время трансформации.
Добавление вывода задачи в качестве srcDir из sourceSets.androidMain.resources не создает зависимости задачи.
В AndroidPluginVersion.toString() отсутствуют ведущие 0
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 ошибочно удаляет файлы ConsumerProguardFiles из модуля
Помощник по обновлению AGP загружается бесконечно
SourceDirectories#static не должен зависеть от задачи GenerateBuildConfig.
Предварительный просмотр Compose не позволяет разрешить классы из транзитивной зависимости
AGP 8.3 ломает zipAppsFor Task
Артефакты AndroidX Desktop, упакованные в Android APK
Ворс
GradleModelMocker среды тестирования Lint не позволяет устанавливать версию библиотеки
Lint K2 UAST: UCallableReferenceExpression сообщает о неправильном типе квалификатора
Ложное срабатывание Lint с useK2Uast=true с перегруженными функциями
[BuildTool/Lint] ChecksSdkIntAtLeast свойство конструктора
Интеграция Линта
Lint не может устранить неоднозначность зависимости KMP

Плагин Android Gradle 8.4.1

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

Плагин Android Gradle 8.4.2

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