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] 지연 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 린트 실패
AGP 8.7.0 - NavOptionsBuilder.popUpTo의 RestrictedApi에 린트 거짓양성
WrongConstant 린트가 두 번 표시됨
'MonochromeLauncherIcon: Monochrome icon is not defined' 경고가 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이 비정상 종료됨