Плагин 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.
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 на macOS). В противном случае загрузите последнюю стабильную сборку .

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

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

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

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

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

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

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

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

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

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

Чтобы вернуться к предыдущему поведению, установите 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 создает невоспроизводимые classes.jar для aars, у которых нет 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 не может разрешить классы из транзитивной зависимости
AGP 8.3 ломает zipApksFor Task
Артефакты AndroidX Desktop, упакованные в Android APK
Ворс
GradleModelMocker фреймворка тестирования Lint не позволяет устанавливать версию библиотеки
Lint K2 UAST: UCallableReferenceExpression сообщает о неправильном qualifierType
Ложное срабатывание 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