Плагин 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 | Патч 2 от 2023.3.1 и 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 из стабильного канала , вы можете получить обновление, нажав «Справка» > «Проверить наличие обновлений» (или «Android Studio» > «Проверить наличие обновлений» в macOS). В противном случае загрузите последнюю стабильную сборку .

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

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

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

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

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

Android Studio Jellyfish | Патч 1 версии 2023.3.1 и AGP 8.4.1 (май 2024 г.)

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

Количество мест на библиотечных занятиях сократилось.

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

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

Чтобы вернуться к предыдущему поведению, установите 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.
Дексер (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.
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 Upgrade Assistant Loads Infinitely
Метод SourceDirectories#static не должен зависеть от задачи GenerateBuildConfig.
В предварительном просмотре Compose не удается разрешить классы из транзитивной зависимости.
AGP 8.3 ломает zipApksFor Task
Артефакты AndroidX Desktop, упакованные в APK-файл Android.
Ворс
В фреймворке для тестирования Lint функция GradleModelMocker не позволяет задавать версию библиотеки.
Lint K2 UAST: UCallableReferenceExpression сообщает о неверном qualifierType
Ложное срабатывание Lint при использовании useK2Uast=true с перегруженными функциями
[BuildTool/Lint] Проверяет свойство конструктора ChecksSdkIntAtLeast
Интеграция Lint
Lint не может однозначно определить зависимость KMP.