Android Gradle 플러그인 8.0.0은 Android Gradle 플러그인의 다양한 확인할 수 있습니다.
호환성
최소 버전 | 기본 버전 | 참고 | |
---|---|---|---|
Gradle | 8.0 | 8.0 | 자세한 내용은 Gradle 업데이트하기를 참고하세요. |
SDK 빌드 도구 | 30.0.3 | 30.0.3 | SDK 빌드 도구를 설치 또는 구성합니다. |
NDK | 해당 사항 없음 | 25.1.8937393 | 다른 버전의 NDK를 설치 또는 구성합니다. |
JDK | 17 | 17 | 자세한 내용은 JDK 버전 설정을 참고하세요. |
패치 출시
다음은 Android Gradle 플러그인 패치 출시 목록입니다. 8.0.
Android Gradle 플러그인 8.0.2(2023년 5월)
AGP 8.0.2에서 수정된 버그 목록은 Android 스튜디오 2022.2.1 해결된 문제.
Android Gradle 플러그인 8.0.1 (2023년 5월)
이번 소규모 업데이트는 다음과 같은 버그 수정을 포함합니다.
해결된 문제 | |
---|---|
오류: AGP 7.2.2에서 7.4.0으로 업그레이드한 후 'No VersionRequirement with the given id in the table' 오류 발생
|
|
markTypeAsLive AGP 7.4.1에서 R8 NullPointerException 발생
|
|
[R8 4.0.53] Android 11에서 하드 클래스 인증 실패
|
중단 변경사항: 모듈 수준 빌드 스크립트에 네임스페이스 필요
네임스페이스는 매니페스트 파일이 아닌 모듈 수준 build.gradle.kts
파일에서 설정해야 합니다. namespace
DSL 속성을 사용할 수 있습니다.
살펴보겠습니다 자세한 내용은
네임스페이스를 설정합니다.
네임스페이스 DSL로 이전할 때는 다음 문제에 유의하세요.
- 이전 버전의 AGP는 경우에 따라 기본 네임스페이스 또는 애플리케이션 ID에서 테스트 네임스페이스를 잘못 추론합니다. AGP 업그레이드 어시스턴트는 프로젝트의 기본 네임스페이스와 테스트 네임스페이스가 동일한 경우 업그레이드를 차단합니다. 업그레이드가 차단된 경우
testNamespace
를 수동으로 변경하고 소스 코드를 적절하게 수정해야 합니다. - 테스트 네임스페이스를 변경한 후 코드는 컴파일되지만 계측 테스트가 런타임에 실패할 수 있습니다. 이러한 문제는
계측 테스트 소스 코드는
androidTest
및 앱 소스.
자세한 내용은 문제 #191813691 댓글 #19.
중대한 변경사항: 빌드 옵션 기본값
AGP 8.0부터 이러한 플래그의 기본값이 빌드 성능을 개선할 수 있습니다 이러한 변경사항 중 일부를 지원하도록 코드를 조정하는 데 도움이 필요하면 AGP 업그레이드 어시스턴트(도구 > AGP 업그레이드 어시스턴트)를 사용하세요. 업그레이드 어시스턴트가 새 동작을 수용하도록 코드를 업데이트하거나 플래그를 설정하여 확인할 수 있습니다
플래그 | 새 기본값 | 이전 기본값 | 참고 |
---|---|---|---|
android.defaults.buildfeatures.buildconfig |
false |
true |
AGP 8.0은 기본적으로 BuildConfig 를 생성하지 않습니다. 요구사항
필요한 프로젝트에서 DSL을 사용하여 이 옵션을 지정하세요. |
android.defaults.buildfeatures.aidl |
false |
true |
AGP 8.0은 기본적으로 AIDL 지원을 사용 설정하지 않습니다. 필요한 프로젝트에서 DSL을 사용하여 이 옵션을 지정해야 합니다. 이 플래그는 곧 AGP 9.0에서 삭제될 예정입니다. |
android.defaults.buildfeatures.renderscript |
false |
true |
AGP 8.0에서는 기본적으로 RenderScript 지원이 사용 설정되지 않습니다. 해야 할 일 필요한 프로젝트에서 DSL을 사용하여 이 옵션을 지정하세요. 이 플래그는 AGP 9.0에서 삭제될 예정입니다. |
android.nonFinalResIds |
true |
false |
AGP 8.0은 다음과 같이 최종이 아닌 필드가 있는 R 클래스를 생성합니다.
기본값입니다. |
android.nonTransitiveRClass |
true |
false |
AGP 8.0은 현재 모듈에 정의된 리소스에 대해서만 R 클래스를 생성합니다. |
android.enableR8.fullMode |
true |
false |
AGP 8.0은 기본적으로 R8 전체 모드를 사용 설정합니다. 자세한 내용은 R8 전체 모드를 참고하세요. |
브레이킹 체인지: 빌드 옵션 값이 적용됨
AGP 8.0부터 더 이상 이러한 플래그 값을 변경할 수 없습니다. 만약
gradle.properties
파일에서 지정하면 값이 무시되고 AGP가
경고를 출력합니다.
플래그 | 적용된 값 | 참고 |
---|---|---|
android.dependencyResolutionAtConfigurationTime.warn |
true |
AGP 8.0은 구성 단계 중에 구성 확인을 감지하면 경고를 내보냅니다. 구성 확인은 Gradle 구성 시간에 부정적인 영향을 미치기 때문입니다. |
android.r8.failOnMissingClasses |
true |
AGP 8.0은 더 나은 DEX 최적화를 위해 누락된 클래스가 있는 경우 R8을 사용하는 빌드를 실패시킵니다. 이 문제를 해결하려면 누락된 라이브러리 또는 -dontwarn 유지 규칙을 추가해야 합니다. 자세한 내용은 R8 축소기에서 클래스 경고 누락을 참고하세요. |
android.testConfig.useRelativePath |
true |
Android 리소스, 애셋, 매니페스트 사용을 지원하는 경우
단위 테스트가 사용 설정되면 AGP 8.0은
상대적 요소만 포함된 test_config.properties 파일
학습합니다. 이렇게 하면 Android 단위 테스트에서 항상 Gradle 빌드 캐시를 사용할 수 있습니다. |
android.useNewJarCreator |
true |
AGP가 JAR 파일을 만들 때 Zipflinger 라이브러리를 사용하여 개선 빌드 성능을 향상시키는 데 도움이 됩니다. |
android.bundletool.includeRepositoriesInDependencyReport |
true |
AAB 및 APK에 SDK 종속 항목 정보를 추가하는 기능이 사용 설정된 경우 AGP 8.0은 이 정보에 프로젝트 저장소 목록도 추가합니다. 받는사람 자세히 알아보려면 Play Console의 종속 항목 정보. |
android.enableArtProfiles |
true |
이제 기준 프로필이 항상 생성됩니다. 자세한 내용은 기준 프로필을 참고하세요. |
android.enableNewResourceShrinker |
true |
기본적으로 새 리소스 좁히기 구현을 사용합니다. 새로운 리소스 축소 도구에는 동적 기능 지원이 포함되어 있습니다. |
android.enableSourceSetPathsMap |
true |
상대 리소스 경로 매핑을 계산하는 데 사용되므로 Gradle 빌드가 더 자주 업데이트됩니다. |
android.cacheCompileLibResources |
true |
컴파일된 라이브러리 리소스는 이제 기본적으로 캐시될 수 있습니다.
프로젝트 위치를 기준으로 리소스 파일을 추적합니다. android.enableSourceSetPathsMap 를 사용 설정해야 합니다. |
android.disableAutomaticComponentCreation |
true |
AGP 8.0은 기본적으로 SoftwareComponent를 생성하지 않습니다. 대신 AGP는 게시되도록 구성된 변형에만 적용되는 SoftwareComponents 할 수 있습니다. |
실행 프로필의 새로운 안정적인 플래그
AGP에는 새 플래그 android.settings.executionProfile
가 포함되어 있습니다. 이 플래그를 사용하여 SettingsExtension
의 기본 실행 프로필을 재정의합니다.
자세한 내용은 설정 플러그인 문서를 참고하세요.
실험용 플래그를 미리 보려면 다음을 참고하세요. 미리보기 출시 노트를 참조하세요.
Kotlin 지연 속성 할당이 지원되지 않음
빌드 스크립트에 Gradle의 Kotlin DSL을 사용하는 경우 Android 스튜디오 및 AGP 8.0은 =
연산자를 사용하는 실험용 속성 할당을 지원하지 않습니다. 이 기능에 대한 자세한 내용은
출시 노트
및
문서를 참조하세요.
빌드 분석 도구 작업 카테고리
Android 스튜디오 Flamingo부터 빌드 분석 도구에 빌드 기간에 영향을 미치는 태스크입니다. 프로젝트에서 AGP 8.0 이상을 사용하는 경우 빌드 분석 도구는 작업을 개별적으로 표시하는 대신 카테고리별로 그룹화합니다. 예를 들어 Android 리소스, Kotlin 또는 Dexing과 관련된 작업은 함께 그룹화된 후 빌드 시간별로 정렬됩니다. 이를 통해 빌드 시간에 가장 큰 영향을 미치는 카테고리를 쉽게 알 수 있습니다. 각 카테고리 확장 해당하는 태스크 목록을 표시합니다. 그룹화하지 않고 태스크를 개별적으로 표시하려면 그룹 기준 드롭다운을 사용하세요.
새 설정 플러그인
AGP 8.0.0-alpha09에 새로운 설정 플러그인이 도입되었습니다. 설정 플러그인을 사용하면 전역 구성(모든 모듈에 적용되는 구성)을 중앙 집중화하여 구성을 복사하여 붙여넣을 필요가 없습니다. 모듈을 마칩니다 또한 설정 플러그인을 사용하여 실행 프로필이나 도구 실행 방법에 관한 다른 지침 전환할 수 있습니다
설정 플러그인을 사용하려면 settings.gradle
파일에 플러그인을 적용합니다.
apply plugin 'com.android.settings'
전역 구성 중앙화
전역 구성을 구성하려면 다음에서 새 android
블록을 사용합니다.
settings.gradle
파일. 예를 들면 다음과 같습니다.
android {
compileSdk 31
minSdk 28
...
}
도구 실행 프로필
설정 플러그인을 사용하면 일부 도구의 실행 프로필을 생성할 수도 있습니다. 실행 프로필에 따라 도구 실행 방식이 결정됩니다. 다양한 실행 프로필을 만들 수 있습니다 실행 프로필에서 도구의 JVM 인수를 설정하고 별도의 프로세스에서 실행되도록 구성할 수 있습니다. 현재는 R8 도구만 지원됩니다.
다음 예와 같이 실행 프로필을 만들고 settings.gradle
파일에서 기본 실행 프로필을 설정합니다.
android {
execution {
profiles {
high {
r8 {
jvmOptions += ["-Xms2048m", "-Xmx8192m", "-XX:+HeapDumpOnOutOfMemoryError"]
runInSeparateProcess true
}
}
low {
r8 {
jvmOptions += ["-Xms256m", "-Xmx2048m", "-XX:+HeapDumpOnOutOfMemoryError"]
runInSeparateProcess true
}
}
ci {
r8.runInSeparateProcess false
}
}
defaultProfile "low"
}
}
기본 프로필을 재정의하려면 gradle.properties
파일에서 android.experimental.settings.executionProfile
속성을 사용하여 다른 프로필을 선택합니다.
android.experimental.settings.executionProfile=high
명령줄을 사용하여 이 속성을 설정할 수도 있습니다. 그러면 다양한 워크플로를 설정할 수 있습니다. 예를 들어 지속적인 통합 워크플로가 있는 경우 명령줄을 사용하여 settings.gradle
파일을 변경하지 않고도 실행 프로필을 변경할 수 있습니다.
./gradlew assembleRelease \
-Pandroid.experimental.settings.executionProfile=ci
AGP 8.0을 실행하려면 JDK 17이 필요함
Android Gradle 플러그인 8.0을 사용하여 앱을 빌드하는 경우 이제 Gradle을 실행하려면 JDK 17이 필요합니다. Android 스튜디오 Flamingo는 JDK 17을 번들로 제공하고 Gradle을 기본적으로 사용하도록 구성합니다. 즉, 대부분의 Android 스튜디오 사용자는 프로젝트 구성을 변경할 필요가 없습니다.
Android 스튜디오 내 AGP에 사용되는 JDK 버전을 수동으로 설정해야 하는 경우 JDK 17 이상을 사용해야 합니다.
Android 스튜디오와는 별개로 AGP를 사용하는 경우 JAVA_HOME
환경 변수 또는 -Dorg.gradle.java.home
명령줄 옵션을 JDK 17의 설치 디렉터리로 설정하여 JDK 버전을 업그레이드합니다.
해결된 문제
Android Gradle 플러그인 8.0.0
해결된 문제 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Android Gradle 플러그인 |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Dexer(D8) |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
린트 |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
린트 통합 |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
축소기(R8) |
|
Android Gradle 플러그인 8.0.1
해결된 문제 | ||||
---|---|---|---|---|
축소기(R8) |
|
Android Gradle 플러그인 8.0.2
해결된 문제 | |||||
---|---|---|---|---|---|
축소기(R8) |
|