Android Gradle 플러그인 9.2.0 (2026년 4월)

Android Gradle 플러그인 9.2는 다양한 새 기능과 개선사항이 포함된 소규모 버전입니다.

호환성

Android Gradle 플러그인 9.2에서 지원하는 최대 API 수준은 API 수준 36.1입니다. 다음은 기타 호환성 정보입니다.

최소 버전 기본 버전 참고
Gradle 9.4.1 9.4.1 자세한 내용은 Gradle 업데이트하기를 참고하세요.
SDK 빌드 도구 36.0.0 36.0.0 SDK 빌드 도구를 설치 또는 구성합니다.
NDK 해당 사항 없음 28.2.13676358 다른 버전의 NDK를 설치 또는 구성합니다.
JDK 17 17 자세한 내용은 JDK 버전 설정을 참고하세요.

통합 범위 및 테스트 보고서

AGP 9.2.0-alpha07에서는 다양한 테스트 유형 (단위 및 계측), 모듈, 빌드 변형의 테스트 결과와 범위를 통합하는 HTML 대시보드를 생성하는 작업을 도입하여 단일 대시보드에서 포괄적인 개요를 제공합니다. 자세한 내용은 통합 코드 적용 범위 보고서 생성통합 테스트 보고서 보기를 참고하세요.

R8 변경사항

다음 R8 변경사항이 AGP 9.2.0에 포함되어 있습니다.

런타임에 표시되지 않는 주석을 유지하기 위한 더 엄격한 -keepattributes 시맨틱스

런타임에 보이지 않는 주석은 런타임에 읽을 수 없습니다. 따라서 D8은 이를 변경할 옵션 없이 런타임에 표시되지 않는 주석을 무조건 삭제합니다.

ProGuard와의 호환성을 위해 R8은 런타임에 표시되지 않는 주석 출력을 지원합니다. 하지만 DEX로 컴파일할 때는 런타임에 표시되지 않는 주석이 일반적으로 유지되지 않습니다. 하지만 R8이 런타임에 표시되는 주석을 유지하도록 편리한 규칙 -keepattributes *Annotation* (직접 또는 소비자 유지 규칙에서 간접적으로)를 포함하는 것이 일반적입니다. 안타깝게도 이로 인해 런타임에 보이지 않는 주석도 유지됩니다.

이 문제를 완화하고 D8 동작과 더 잘 일치하도록 와일드 카드가 있는 -keepattributes 패턴이 더 이상 RuntimeInvisibleAnnotations, RuntimeInvisibleParameterAnnotations, RuntimeInvisibleTypeAnnotations와 일치하지 않습니다. 따라서 런타임에 표시되지 않는 주석은 속성 이름이 와일드 카드 없이 명시적으로 언급된 경우에만 유지됩니다.

이제 다음 규칙은 런타임에 보이지 않는 주석을 유지하지 않습니다.

-keepattributes *
-keepattributes *Annotation*
-keepattributes *Invisible*

런타임에 보이지 않는 주석을 유지하려면 다음 규칙을 사용하세요.

-keepattributes RuntimeInvisibleAnnotations,
                RuntimeInvisibleParameterAnnotations,
                RuntimeInvisibleTypeAnnotations

구성원 규칙에서 부정된 이름 지원

이제 부정된 구성원 이름 패턴을 일치시킬 수 있도록 구성 언어가 확장되었습니다.

예를 들어 'ForTesting'으로 끝나지 않는 모든 메서드를 일치시키려면 다음 규칙을 사용하세요.

-keepclassmembers class com.example.MyClass {
  *** !*ForTesting(...);
}

회원 이름 패턴은 -if 규칙의 사전 조건에서도 부정될 수 있습니다. 부정된 구성원 이름 패턴에 와일드 카드가 포함된 경우 이러한 와일드 카드는 -if 결과 규칙에서 역참조될 수 없습니다.

해결된 문제

Android Gradle 플러그인 9.2.0-alpha04

해결된 문제
Android Gradle 플러그인
새 AGP DSL을 사용하여 APK 이름 바꾸기
bootClasspath에 액세스할 때 (평가하지 않음) 오류 발생 IllegalStateException: targetCompatibility가 아직 완료되지 않음

Android Gradle 플러그인 9.2.0-alpha03

해결된 문제
Android Gradle 플러그인
JDK 26에서 JdkImageTransform 실패
AGP 10.0에서 AAR 메타데이터에 minAgpVersion 자동 인코딩
린트
`SarifReporter.kt`에서 오프셋 포인터가 멈춰 린트 SARIF 보고서의 컨텍스트 윈도우가 잘림
Lint Gradle 클라이언트에 중요한 기능이 누락되어 신뢰할 수 없습니다.
린트 통합
Lint Gradle 작업에서 --quiet 플래그를 무시함

Android Gradle 플러그인 9.2.0-alpha02

해결된 문제
Android Gradle 플러그인
AGP 9.0 applicationVariants.all.mergeAssetsProvider에 해당하는 androidComponents.onVariant가 없음
`*.xml.flat` 파일에 절대 파일 경로가 포함됨
R8D8ThreadPoolBuildService가 등록되지 않음
린트 통합
Java 21 바이트 코드로 컴파일된 맞춤 린트 검사로 인해 Android 린트가 실패함

Android Gradle 플러그인 9.2.0-alpha01

해결된 문제
Android Gradle 플러그인
commonTest가 있지만 withHostTestBuilder를 잊은 경우 사용자에게 경고
[융합 라이브러리 - 공개] OkHttp에 소스가 포함됨
라이브러리에 매니페스트 자리표시자가 있는 경우 androidDeviceTest를 실행할 수 없음 (com.android.kotlin.multiplatform.library 플러그인이 있는 AGP 9.0.0)
사용자가 Java가 사용 중지된 src/androidDeviceTest/java를 사용하는 경우 AGP에서 경고해야 함
린트
메시지의 오타 검사