Android Gradle 플러그인 미리보기 출시 노트

이 페이지에는 Android Gradle 플러그인 (AGP)의 미리보기 버전 출시 노트가 포함되어 있습니다.

Android Gradle 플러그인 9.0

Android Gradle 플러그인 9.0은 AGP의 새로운 주요 버전으로, API 및 동작 변경사항이 적용됩니다.

Android Gradle 플러그인 9.0.0-alpha10으로 업데이트하려면 Android 스튜디오 Otter | 2025.2.1에서 Android Gradle 플러그인 업그레이드 어시스턴트를 사용하세요.

AGP 업그레이드 어시스턴트는 적절한 경우 프로젝트를 업그레이드할 때 기존 동작을 유지하여 AGP 9.0의 새로운 기본값을 모두 채택할 준비가 되지 않았더라도 AGP 9.0을 사용하도록 프로젝트를 업그레이드할 수 있습니다.

호환성

Android Gradle 플러그인 9.0.0-alpha10에서 지원하는 최대 Android API 수준은 API 수준 36입니다.

Android Gradle 플러그인 9.0.0-alpha10에는 Gradle 9.0.0이 필요합니다.

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

이제 android DSL 클래스는 새로운 공개 인터페이스만 구현합니다.

지난 몇 년 동안 Google은 공개 API를 더 잘 제어하기 위해 DSL 및 API용 새 인터페이스를 도입했습니다. AGP 버전 7.x 및 8.x에서는 인터페이스 작업이 진행됨에 따라 호환성을 유지하기 위해 새로운 공개 인터페이스도 구현하는 이전 DSL 유형 (예: BaseExtension)을 계속 사용했습니다.

AGP 9.0은 새로운 DSL 인터페이스만 사용하며 구현이 완전히 숨겨진 새로운 유형으로 변경되었습니다. 이 변경사항은 지원 중단된 이전 변형 API에 대한 액세스 권한도 삭제합니다.

AGP 9.0으로 업데이트하려면 다음을 수행해야 할 수 있습니다.

  • 프로젝트가 내장 Kotlin과 호환되는지 확인: org.jetbrains.kotlin.android 플러그인은 새 DSL과 호환되지 않습니다.
  • KMP 프로젝트를 KMP용 Android Gradle 라이브러리 플러그인으로 전환: com.android.librarycom.android.application 플러그인과 동일한 Gradle 하위 프로젝트에서 org.jetbrains.kotlin.multiplatform 플러그인을 사용하는 것은 새 DSL과 호환되지 않습니다.

  • 빌드 파일 업데이트: 인터페이스 변경은 DSL을 최대한 유사하게 유지하기 위한 것이지만 약간의 변경사항이 있을 수 있습니다.

  • 새 DSL 및 API를 참조하도록 맞춤 빌드 로직을 업데이트합니다. 내부 DSL에 대한 참조를 공개 DSL 인터페이스로 바꿉니다. 대부분의 경우 일대일 대체가 됩니다. applicationVariants 및 유사한 API의 사용을 새 androidComponents API로 대체합니다. androidComponents API는 플러그인이 더 오래 호환되도록 더 안정적으로 설계되어 있으므로 이 방법이 더 복잡할 수 있습니다. 예는 Gradle 레시피를 참고하세요.

  • 서드 파티 플러그인 업데이트: 일부 서드 파티 플러그인은 더 이상 노출되지 않는 인터페이스나 API를 계속 사용할 수 있습니다. AGP 9.0과 호환되는 플러그인 버전으로 이전하세요.

새 DSL 인터페이스로 전환하면 다음을 비롯한 다양한 지원 중단된 API를 사용하는 플러그인과 Gradle 빌드 스크립트가 방지됩니다.

android 블록의 지원 중단된 API 함수 교체
applicationVariants,
libraryVariants,
testVariants,
unitTestVariants
플러그인이 AGP에 새 기능을 추가할 수 있는 확장 지점 이를 androidComponents.onVariants API로 바꿉니다. 예를 들면 다음과 같습니다.
androidComponents {
    onVariants() { variant ->
        variant.signingConfig
            .enableV1Signing.set(false)
    }
}
이전 API를 모두 직접 대체할 수 있는 API가 없을 수도 있습니다. 새 변형 API로 처리되지 않는 사용 사례가 있는 경우 문제를 신고하세요.
variantFilter 선택한 변형을 사용 중지할 수 있습니다. 이를 androidComponents.beforeVariants API로 바꿉니다. 예를 들면 다음과 같습니다.
androidComponents {
    beforeVariants(
        selector()
            .withBuildType("debug")
            .withFlavor("color", "blue")
    ) { variantBuilder ->
        variantBuilder.enable = false
    }
  }
deviceProvider
testServer
Android 기기 및 에뮬레이터에 대해 테스트를 실행하기 위한 맞춤 테스트 환경 등록 Gradle 관리 기기로 전환합니다.
sdkDirectory,
ndkDirectory,
bootClasspath,
adbExecutable,
adbExe
맞춤 작업에 Android SDK의 다양한 구성요소 사용 androidComponents.sdkComponents으로 전환합니다.
registerArtifactType,
registerBuildTypeSourceProvider,
registerProductFlavorSourceProvider,
registerJavaArtifact,
registerMultiFlavorSourceProvider,
wrapJavaSourceSet
AGP 7.2.0에서 작동이 중단된 Android 스튜디오의 생성된 소스 처리와 주로 관련된 오래된 기능입니다. 이러한 API를 직접 대체할 수 있는 API는 없습니다.

AGP 9.0으로 업데이트한 후 다음 오류 메시지가 표시되면 프로젝트에서 여전히 일부 이전 유형을 참조하고 있는 것입니다.

java.lang.ClassCastException: class com.android.build.gradle.internal.dsl.ApplicationExtensionImpl$AgpDecorated_Decorated
cannot be cast to class com.android.build.gradle.BaseExtension

호환되지 않는 서드 파티 플러그인으로 인해 차단된 경우 선택 해제하고 DSL의 이전 구현과 이전 변형 API를 다시 가져올 수 있습니다. 이 작업을 하는 동안 새 인터페이스도 사용할 수 있으며 자체 빌드 로직을 새 API로 업데이트할 수도 있습니다. 선택 해제하려면 gradle.properties 파일에 다음 줄을 포함하세요.

android.newDsl=false

AGP 9.0으로 업그레이드하기 전에 새 API로 업그레이드할 수도 있습니다. 새 인터페이스는 여러 AGP 버전에 존재해 왔으므로 새 인터페이스와 이전 인터페이스를 혼합할 수 있습니다. AGP API 참조 문서에는 각 AGP 버전의 API 노출 영역과 각 클래스, 메서드, 필드가 추가된 시기가 표시됩니다.

9.0 알파 단계에서 Google은 플러그인 작성자에게 연락하여 새로운 모드와 완전히 호환되는 플러그인을 적용하고 출시하도록 지원하고, Android 스튜디오의 AGP 업그레이드 어시스턴트를 개선하여 이전 과정을 안내할 예정입니다.

새 DSL 또는 Variant API에 기능이 누락된 경우 최대한 빨리 문제를 신고하세요.

Kotlin 내장

Android Gradle 플러그인 9.0에는 Kotlin 컴파일을 위한 지원이 내장되어 별도로 적용된 Kotlin 플러그인을 대체합니다. 이렇게 하면 AGP와의 통합이 간소화되고, 지원 중단된 API를 사용하지 않으며, 경우에 따라 성능이 향상됩니다.

Android Gradle 플러그인 9.0에는 Kotlin Gradle 플러그인 2.2.10에 대한 런타임 종속 항목이 있습니다. 이는 내장 Kotlin 지원에 필요한 최소 버전입니다.

AGP 9.0의 내장 Kotlin은 test-fixtures에 대한 완전한 Android 스튜디오 IDE 지원을 제공합니다. 이를 시도하려면 AGP 9.0.0-alpha07 이상을 사용하세요.

android.builtInKotlin=false를 설정하여 내장 Kotlin을 선택 해제할 수 있습니다.

기본 제공 Kotlin을 선택 해제하고 이전 버전의 Kotlin Gradle 플러그인을 사용해야 하는 경우 다운그레이드를 강제할 수 있습니다.

buildscript {
    dependencies {
        classpath("org.jetbrains.kotlin:kotlin-gradle-plugin") {
            version { strictly("2.0.0") } // or another version that you want to use
        }
    }
}

동작 변경사항

Android Gradle 플러그인 9.0에는 다음과 같은 새로운 동작이 있습니다.

동작 권장사항
Android Gradle 플러그인 9.0은 기본적으로 NDK 버전 r28c을 사용합니다. 사용할 NDK 버전을 명시적으로 지정하는 것이 좋습니다.
Android Gradle 플러그인 9.0에서는 기본적으로 라이브러리 소비자가 동일하거나 더 높은 컴파일 SDK 버전을 사용해야 합니다. 라이브러리를 사용할 때는 동일하거나 더 높은 컴파일 SDK를 사용하세요. 이렇게 할 수 없거나 게시하는 라이브러리의 소비자가 전환할 시간을 더 주려면 AarMetadata.minCompileSdk을 명시적으로 설정하세요.

AGP 9.0에는 다음 Gradle 속성의 기본값에 대한 업데이트가 포함되어 있습니다. 이렇게 하면 업그레이드 시 AGP 8.13 동작을 유지할 수 있습니다.

속성 함수 AGP 8.13에서 AGP 9.0으로 변경 권장사항
android.newDsl android 블록의 기존 구현을 노출하지 않고 새 DSL 인터페이스를 사용합니다.
또한 android.applicationVariants과 같은 기존 변형 API에 더 이상 액세스할 수 없습니다.
falsetrue android.newDsl=false를 설정하여 선택 해제할 수 있습니다.
프로젝트에서 사용하는 모든 플러그인과 빌드 로직이 호환되면 선택 해제를 삭제합니다.
android.builtInKotlin org.jetbrains.kotlin.android 플러그인 없이 Android Gradle 플러그인에서 직접 Kotlin 코드를 컴파일할 수 있도록 지원을 사용 설정했습니다. falsetrue 가능한 경우 org.jetbrains.kotlin.android 플러그인 사용을 삭제하여 기본 Kotlin을 채택합니다. 그렇지 않은 경우 android.builtInKotlin=false을 설정하여 선택 해제합니다.
android.uniquePackageNames 각 라이브러리에 고유한 패키지 이름이 있어야 합니다. falsetrue 프로젝트 내 모든 라이브러리에 고유한 패키지 이름을 지정합니다. 그렇게 할 수 없는 경우 이전하는 동안 이 플래그를 사용 중지하면 됩니다.
android.dependency.useConstraints 구성 간 종속 항목 제약 조건의 사용을 제어합니다.
AGP 9.0의 기본값은 애플리케이션 기기 테스트 (AndroidTest)에서만 제약 조건을 사용하는 false입니다. true로 설정하면 8.13 동작으로 되돌아갑니다.
truefalse 필요하지 않은 경우 종속 항목 제약 조건을 어디에나 사용하지 마세요. 이 플래그의 새로운 기본값을 수락하면 프로젝트 가져오기 프로세스에서 최적화가 사용 설정되어 Android 라이브러리 하위 프로젝트가 많은 빌드의 가져오기 시간이 줄어듭니다.
aandroid.enableAppCompileTimeRClass 최종이 아닌 R 클래스에 대해 애플리케이션에서 코드를 컴파일하여 애플리케이션 컴파일을 라이브러리 컴파일과 일치시킵니다.
이렇게 하면 증분성이 개선되고 향후 리소스 처리 흐름의 성능 최적화가 가능해집니다.
falsetrue 많은 프로젝트에서 소스 변경 없이 새로운 동작을 채택할 수 있습니다. R 클래스 필드가 switch 사례와 같이 상수가 필요한 곳에 사용되는 경우 연결된 if 문을 사용하도록 리팩터링합니다.
android.sdk.defaultTargetSdkToCompileSdkIfUnset 컴파일 SDK 버전을 앱 및 테스트의 타겟 SDK 버전의 기본값으로 사용합니다.
이 변경사항 전에는 타겟 SDK 버전이 기본적으로 최소 SDK 버전으로 설정되었습니다.
falsetrue 앱과 테스트의 타겟 SDK 버전을 명시적으로 지정합니다.
android.onlyEnableUnitTestForTheTestedBuildType 테스트된 빌드 유형의 단위 테스트 구성요소만 만듭니다.
기본 프로젝트에서 이전 동작은 디버그 또는 출시를 위해 단위 테스트를 실행하는 것이었지만 이제 디버그를 위한 단일 단위 테스트가 실행됩니다.
falsetrue 디버그와 출시 모두에서 테스트를 실행할 필요가 없는 프로젝트의 경우 변경할 필요가 없습니다.
android.proguard.failOnMissingFiles AGP DSL에 지정된 보관 파일이 디스크에 없으면 오류와 함께 빌드가 실패합니다. 이 변경사항이 적용되기 전에는 파일 이름의 오타로 인해 파일이 자동으로 무시되었습니다. falsetrue 잘못된 ProGuard 파일 선언 삭제
android.r8.optimizedResourceShrinking R8이 클래스와 Android 리소스를 함께 고려하여 더 적은 Android 리소스를 유지하도록 허용합니다. falsetrue 프로젝트의 보관 규칙이 이미 완료된 경우 변경할 필요가 없습니다.
android.r8.strictFullModeForKeepRules 클래스가 유지될 때 기본 생성자를 암시적으로 유지하지 않아 R8이 더 적게 유지할 수 있습니다. 즉, -keep class A는 더 이상 -keep class A { <init>(); }
를 의미하지 않습니다.
falsetrue 프로젝트의 보관 규칙이 이미 완료된 경우 변경할 필요가 없습니다.

기본 생성자를 유지해야 하는 모든 경우에 프로젝트의 유지 규칙에서 -keep class A-keep class A { <init>(); }로 바꿉니다.
android.defaults.buildfeatures.resvalues 모든 하위 프로젝트에서 resValues을 사용 설정합니다. truefalse 다음과 같이 프로젝트의 Gradle 빌드 파일에 설정하여 resValues를 필요한 하위 프로젝트에서만 사용 설정합니다.
android {
  buildFeatures {
    resValues = true
  }
}
android.defaults.buildfeatures.shaders 모든 하위 프로젝트에서 셰이더 컴파일을 사용 설정합니다. truefalse 컴파일할 셰이더가 포함된 하위 프로젝트에서만 셰이더 컴파일을 사용 설정하려면 해당 프로젝트의 Gradle 빌드 파일에서 다음을 설정하세요.
android {
  buildFeatures {
    shaders = true
  }
}
android.r8.proguardAndroidTxt.disallowed AGP 9.0에서는 getDefaultProguardFile()proguard-android.txt가 아닌 proguard-android-optimize.txt만 지원합니다. 이는 proguard-android.txt에 포함된 ­dontoptimize 플래그의 실수로 인한 사용을 방지하기 위한 것입니다. falsetrue proguard-android-optimize.txt 사용과 함께 최적화를 방지하려면 맞춤 proguardFile에서 ­dontoptimize을 명시적으로 지정하면 됩니다. 가능한 경우 이 파일에서 ­dontoptimize 플래그를 삭제하세요. R8 최적화 이점이 줄어듭니다. 그렇지 않은 경우 android.r8.globalOptionsInConsumerRules.disallowed=false을 설정하여 선택 해제하세요.
android.r8.globalOptionsInConsumerRules.disallowed AGP 9.0부터 컨슈머 유지 파일에 문제가 있는 Proguard 구성이 포함된 경우 Android 라이브러리 및 기능 모듈 게시가 실패합니다. ­dontoptimize 또는 ­dontobfuscate과 같은 전역 옵션이 포함된 소비자 유지 파일은 애플리케이션 모듈에서만 사용해야 하며 라이브러리 사용자의 최적화 이점을 줄일 수 있습니다. Android 앱 모듈 컴파일은 미리 컴파일된 종속 항목 (JAR 또는 AAR)에 삽입된 경우 이러한 전역 옵션을 자동으로 무시합니다. 구성.txt (일반적으로 <app_module>/build/outputs/mapping/<build_variant>/configuration.txt와 같은 경로에 있음)에서 # REMOVED CONSUMER RULE: ­dontoptimize와 같은 주석을 확인하여 이 문제가 언제 발생하는지 확인할 수 있습니다. falsetrue 게시된 라이브러리는 호환되지 않는 규칙을 삭제해야 합니다. 내부 라이브러리는 호환되지 않지만 필요한 규칙을 앱 모듈의 proguardFile로 이동해야 합니다. android.r8.globalOptionsInConsumerRules.disallowed=false를 설정하여 선택 해제합니다. 모든 소비자 보관 파일이 호환되면 선택 해제를 삭제합니다.

삭제된 기능

Android Gradle 플러그인 9.0에서는 다음 기능을 삭제합니다.

DSL 변경

Android Gradle 플러그인 9.0에는 다음과 같은 주요 DSL 변경사항이 있습니다.

  • CommonExtension의 매개변수화가 삭제되었습니다.

    이 자체는 향후 소스 수준 호환성 중단을 방지하기 위한 소스 수준 호환성 중단일 뿐이지만 블록 메서드를 CommonExtension에서 ApplicationExtension, LibraryExension, DynamicFeatureExtension, TestExtension로 이동해야 한다는 의미도 있습니다.

    프로젝트를 AGP 9.0으로 업그레이드할 때 이러한 매개변수나 차단 메서드를 사용하는 Gradle 플러그인 코드를 리팩터링하세요. 예를 들어 다음 플러그인은 유형 매개변수를 삭제하고 삭제된 블록 메서드를 사용하지 않도록 업데이트됩니다.

    AGP 8.13

    val commonExtension: CommonExtension<*, *, *, *, *, *> =
            extensions.getByType(CommonExtension::class)
    commonExtension.apply {
        defaultConfig {
            minSdk {
                version = release(28)
            }
        }
    }
    

    AGP 9.0

    val commonExtension: CommonExtension =
            extensions.getByType(CommonExtension::class)
    commonExtension.apply {
        defaultConfig.apply {
            minSdk {
                version = release(28)
            }
        }
    }
    

    일정 범위의 AGP 버전을 타겟팅하는 플러그인의 경우 게터를 직접 사용하면 AGP 버전 9.0 미만과 바이너리 호환됩니다.

DSL 삭제됨

Android Gradle 플러그인 9.0에서 다음이 삭제됩니다.

삭제된 API

Android Gradle 플러그인 9.0에서 다음이 삭제됩니다.

Gradle 속성 삭제

다음 Gradle 속성은 기본적으로 사용 설정된 기능을 전역적으로 사용 중지하는 방법으로 처음 추가되었습니다.

이러한 기능은 AGP 8.0 이하에서 기본적으로 사용 중지되었습니다. 더 효율적인 빌드를 위해 이러한 기능을 사용하는 하위 프로젝트에서만 사용 설정하세요.

속성 함수 교체
android.defaults.buildfeatures.aidl 모든 하위 프로젝트에서 AIDL 컴파일을 사용 설정합니다. 다음 속성을 해당 프로젝트의 Gradle 빌드 파일에 설정하여 AIDL 소스가 있는 하위 프로젝트에서만 AIDL 컴파일을 사용 설정합니다.
android {
  buildFeatures {
    aidl = true
  }
}
AIDL 소스가 포함된 각 하위 프로젝트의 Gradle 빌드 파일
android.defaults.buildfeatures.renderscript 모든 하위 프로젝트에서 RenderScript 컴파일 을 사용 설정합니다. 다음 속성을 해당 프로젝트의 Gradle 빌드 파일에 설정하여 renderscript 소스가 있는 하위 프로젝트에서만 renderscript 컴파일을 사용 설정합니다.
android {
  buildFeatures {
    renderScript = true
  }
}

강제 적용된 Gradle 속성

다음 Gradle 속성을 설정하면 AGP 9.0에서 오류가 발생합니다.

Android Gradle 플러그인 업그레이드 어시스턴트는 이러한 속성을 사용하는 프로젝트를 AGP 9.0으로 업그레이드하지 않습니다.

속성 함수
android.r8.integratedResourceShrinking 이제 리소스 축소는 항상 R8의 일부로 실행되며 이전 구현은 삭제되었습니다.

해결된 문제

Android Gradle 플러그인 9.0.0-alpha10

해결된 문제
Android Gradle 플러그인
extractNativeLibs 및 useEmbeddedDex는 매니페스트에서 가져오면 안 됨
AGP 9.0.0-alpha09의 R8 경고
린트
내장 Kotlin은 META-INF에 .kotlin_module을 추가하지 않음
린트 클래스 경로에 서로 다른 버전의 중복 클래스가 포함됨
비공개 리소스 재정의 해결 방법이 작동하지 않음 (tools:override = 'true')

Android Gradle 플러그인 9.0.0-alpha09

해결된 문제
Android Gradle 플러그인
`legacy-kapt` 플러그인은 `kotlin-kapt`와 달리 주석 처리를 건너뜁니다.
compileSdkSpec.minorApiLevel이 SettingsExtension과 함께 작동하지 않음
[융합 라이브러리 - 공개] 생성된 융합 라이브러리에 소스가 포함되지 않음

Android Gradle 플러그인 9.0.0-alpha08

해결된 문제
AGP 9.0.0-alpha08에서 해결됨으로 표시된 공개 문제가 없음

Android Gradle 플러그인 9.0.0-alpha07

해결된 문제
Android Gradle 플러그인
코드 생성 작업이 있으면 빌드가 실패함
`android.builtInKotlin=false`, `android.newDsl=false`, `android.enableLegacyVariantApi=false`를 사용하는 경우 `kotlin-android` 플러그인을 사용하면 'API 'applicationVariants'가 지원 중단됨' 오류와 함께 실패합니다.
kotlin.stdlib.default.dependency=false인 경우 내장 Kotlin이 버전이 지정되지 않은 kotlin-stdlib를 해결하지 못함
DexData가 닫지 않고 파일을 열어 정리 방지
AndroidSourceDirectorySet이 AGP 9.0에서 PatternFilterable 확장을 중지해야 함
테스트 전용 모듈의 테스트 픽스처 오류
테스트 고정 장치에서 컨텍스트 수신기를 사용할 때 오류가 잘못됨
testFixtures의 Kotlin 코드에 대한 IDE 오류가 잘못됨

Android Gradle 플러그인 9.0.0-alpha06

해결된 문제
Android Gradle 플러그인
새 최적화 DSL은 기본적으로 configuration.txt를 만들지 않음
AGP 8.13.0에서 모듈의 탐색 그래프를 확인하지 못함
AGP에서 지원 중단된 Gradle API 사용: 다중 문자열 표기법
minSdkVersion이 21 이상인 상태에서 레거시 multidex 라이브러리를 사용하려는 사용자에게 경고
린트
Lint ChecksSdkIntAtLeast 검사에서 주석이 달린 값이 올바른지 확인하지 않음

Android Gradle 플러그인 9.0.0-alpha05

해결된 문제
Android Gradle 플러그인
consumerProguardFiles에 android.proguard.failOnMissingFiles가 작동하지 않음
Kotlin Gradle 플러그인 종속 항목을 2.2.10으로 업데이트
KGP API를 사용하여 KotlinJvmAndroidCompilation 만들기
테스트 소스에 적용된 Kotlin 명시적 API 모드
린트
린트에서 'K2 캐시를 정리할 수 없음' 경고가 발생함

Android Gradle 플러그인 9.0.0-alpha04

해결된 문제
Android Gradle 플러그인
AGP 9.0에서 기본 소스/타겟 Java 버전을 Java 8에서 Java 11로 전환
android.useAndroidX 기본값을 true로 전환
내장 Kotlin으로 kapt 플러그인을 적용할 때 예외가 더 나아짐
린트
린트에서 'K2 캐시를 정리할 수 없음' 경고가 발생함

Android Gradle 플러그인 9.0.0-alpha03

해결된 문제
Android Gradle 플러그인
`isIncludeAndroidResources` 가 사용 설정된 경우 `process{Variant}UnitTestManifest` 가 AGP 8.12.0에서 tools:overrideLibrary 사용을 병합하지 못함
AGP로 인해 JVM 테스트 작업의 Gradle에 지원 중단 경고가 발생함
DependencyReportTask가 구성 캐시와 호환되지 않음
린트
버그: 사용하지 않는 리소스를 삭제해도 해당 리소스의 번역이 삭제되지 않으며 번역에 관한 메시지도 표시되지 않음

Android Gradle 플러그인 9.0.0-alpha02

해결된 문제
Android Gradle 플러그인
proguard 파일이 없으면 빌드 실패
buildconfig 기본값 gradle.properties 플래그 삭제
앱의 targetSdk 기본값을 minSdk 대신 compileSdk에 기반하도록 변경

Android Gradle 플러그인 9.0.0-alpha01

해결된 문제
Android Gradle 플러그인
AGP 9.0에서 지원 중단된 AndroidSourceSet.jni 삭제
AGP 9.0에서 Installation.installOptions() 삭제
AGP 9.0에서 BuildType.isRenderscriptDebuggable 삭제
android.defaults.buildfeatures.renderscript 삭제
Gradle 관리 기기에서 `com.android.kotlin.multiplatform.library` 가 비정상 종료됨
`android.defaults.buildfeatures.aidl` 기본 gradle.properties 플래그 삭제