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 플러그인 |
|
||
Android Gradle 플러그인 9.2.0-alpha03
| 해결된 문제 | |||
|---|---|---|---|
| Android Gradle 플러그인 |
|
||
| 린트 |
|
||
| 린트 통합 |
|
||
Android Gradle 플러그인 9.2.0-alpha02
| 해결된 문제 | ||||
|---|---|---|---|---|
| Android Gradle 플러그인 |
|
|||
| 린트 통합 |
|
|||
Android Gradle 플러그인 9.2.0-alpha01
| 해결된 문제 | |||||
|---|---|---|---|---|---|
| Android Gradle 플러그인 |
|
||||
| 린트 |
|
||||