Android Gradle 플러그인 8.8.0 (2025년 1월)

Android Gradle 플러그인 8.8.0은 다양한 새 기능과 개선사항이 포함된 메이저 버전입니다.

호환성

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

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

해결된 문제

Android Gradle 플러그인 8.8.0

해결된 문제
Android Gradle 플러그인
JacocoTransform의 입력 유형을 @Classpath로 주석 처리하는 것을 고려하세요.
com.android.build.api.variant.GeneratesApk가 minSdk를 노출해야 함
com.android.settings 플러그인이 targetSdk를 인식하지 못함
SourceDirectories.addGeneratedSourceDirectory가 여러 변형에 적합하지 않음
AGP 최소 버전 확인을 사용 중지하는 플래그 구현
AGP와 Kotlin 컴파일러 옵션 구성 간의 상호작용이 혼동스러움
AGP는 com.android.test 프로젝트에서 타겟 프로젝트 apk용 BuiltArtifactLoader를 노출해야 함
[AGP] Lazy SdkComponents.ndkDirectory 제공자가 값을 생성하지 못하지만 적극적인 android.ndkDirectory API는 작동함
빌드 옵션: 새 '빌드 실행 구성' 옵션 추가 및 기본값으로 설정
android.enableBuildConfigAsBytecode=true를 사용하는 경우 단위 테스트에서 BuildConfig를 확인할 수 없음
번들에서 생성된 APK는 개인 정보 보호 샌드박스 지원을 고려하지 않음
com.android.settings 플러그인이 targetSdk를 인식하지 못함
Dexer(D8)
Desugar 라이브러리 2.1.0이 AGP 8.5.2와 호환되지 않음
린트
8.7.0-alpha04에 도입된 린트 검사와 KtAnalysisSessionProvider가 호환되지 않음
Kotlin에서 PackageManager.ResolveInfoFlags.of를 사용할 때 '거짓양성' WrongConstant
http 또는 https 인텐트 필터 스키마를 설정할 때 '호스트를 하나 이상 지정해야 합니다' 린트 오류
UnknownNullness 린트의 더 많은 사례에서 유형 사용 주석 처리
AGP 8.6.1: 회귀 - Kotlin에서 @LongDef 내부에 [Int].toLong()을 사용할 때 WrongConstant lint 실패
AGP 8.7.0 - NavOptionsBuilder.popUpTo의 린트 거짓양성 RestrictedApi
WrongConstant 린트가 두 번 표시됨
'MonochromeLauncherIcon: 흑백 아이콘이 정의되지 않음' 경고가 Android 스튜디오에 포착되지 않음
AbstractAnnotationDetector가 잘못된 오버로드된 함수/생성자를 확인합니다.
린트 ImportAliasTestMode가 최상위 함수의 가져오기 별칭을 생성하지 않음
WrongConstant 린트가 두 번 표시됨
AGP 8.8의 새로운 ObsoleteSdkInt 린트 경고
거짓양성 린트 검사 android.permission.SCHEDULE_EXACT_ALARM은 시스템 앱에만 부여됩니다.
Android 스튜디오에서 .hasRoute(Route::class)를 사용하면 K2 모드에서 RestrictedApi 경고가 발생함
린트 통합
평가 후 린트 변형 작업을 찾을 수 없음
구현 파일이 포함된 AAR 파일을 가져오면 린트가 실패함

Android Gradle 플러그인 8.8.1

해결된 문제
Dexer(D8)
테스트를 위해 OpenJDK 23 추가
축소기(R8)
java.lang.AbstractMethodError: 수신자 클래스 [...]$$Lambda$[...] 가 인터페이스 [...] 의 해결된 메서드 [...]의 구현을 정의하거나 상속하지 않습니다.
DexCallSite 기록과 관련된 Enqueuer의 NPE
R8 8.7.18에서 job?.cancel을 호출할 때 런타임 null 포인터 예외가 발생함
java.lang.NoClassDefFoundError: Lkotlin/LazyThreadSafetyMode 확인 실패
Monzo가 트리 셰이킹에 과도한 시간을 사용하는 것으로 보임
AGP 8.8 출시 빌드 실패 : R8: java.lang.NullPointerException: 'com.android.tools.r8.internal.BS.a(com.android.tools.r8.internal.cR)'의 반환 값이 null이므로 필드 'b'를 읽을 수 없음

Android Gradle 플러그인 8.8.2

해결된 문제
Android Gradle 플러그인
초기화 스크립트 'C:\Users\mypc\AppData\Local\Temp\ijresolvers2.gradle' 줄: 162
축소기(R8)
AGP 8.8로 업그레이드한 후 Gson Proguard가 제대로 작동하지 않음
java.lang.VerifyError: 인증 도구에서 클래스를 거부함
AGP 8.10.0-alpha04에 포함된 R8로 축소하면 Leanback이 비정상 종료됨