Android Gradle 플러그인 3.2.0(2018년 9월)

이 버전의 Android 플러그인에는 다음이 필요합니다.

최소 버전 기본 버전 참고
Gradle 4.6 4.6 자세한 내용은 Gradle 업데이트하기를 참고하세요.
SDK 빌드 도구 28.0.3 28.0.3 SDK 빌드 도구를 설치 또는 구성합니다.

3.2.1(2018년 10월)

이 업데이트를 통해 더 이상 SDK 빌드 도구의 버전을 지정하지 않아도 됩니다. 이제 Android Gradle 플러그인이 기본적으로 버전 28.0.3을 사용합니다.

새로운 기능

  • Android App Bundle 빌드 지원: 이 App Bundle은 모든 앱의 컴파일된 코드와 리소스를 포함하는 동시에 APK 생성 및 Google Play 스토어 서명은 지연시키는 새로운 업로드 형식입니다. 더 이상 여러 APK를 빌드, 서명, 관리할 필요가 없으며 사용자는 기기에 최적화된 작은 용량을 다운로드합니다. 자세한 내용은 Android App Bundle 정보를 읽어보세요.

  • 주석 프로세서 사용 시 개선된 증분 빌드 속도 지원: 이제 AnnotationProcessorOptions DSL이 CommandLineArgumentProvider를 확장하여 개발자나 주석 프로세서 작성자가 증분 빌드 속성 유형 주석을 사용하는 프로세서의 인수에 주석을 달 수 있습니다. 이러한 주석을 사용하면 증분 및 캐시된 클린 빌드의 정확성과 성능이 개선됩니다. 자세한 내용은 주석 프로세서에 인수 전달을 읽어보세요.

  • AndroidX용 이전 도구: Android 3.2 이상에서 Android Gradle 플러그인 3.2.0을 사용하는 경우 메뉴 바에서 Refactor > Migrate to AndroidX를 선택하여 프로젝트의 로컬 및 Maven 종속 항목을 이전해 새로운 AndroidX 라이브러리를 사용할 수 있습니다. 이 이전 도구를 사용하면 gradle.properties 파일에서 다음 플래그를 true로 설정하기도 합니다.

    • android.useAndroidX: true로 설정하면 Android 플러그인은 지원 라이브러리 대신 적절한 AndroidX 라이브러리를 사용합니다. 이 플래그를 지정하지 않으면 Android 플러그인은 기본적으로 false로 설정합니다.

    • android.enableJetifier: true로 설정하면 Android 플러그인은 바이너리를 다시 작성해 기존 서드 파티 라이브러리를 자동으로 이전하여 AndroidX를 사용합니다. 이 플래그를 지정하지 않으면 Android 플러그인은 기본적으로 false로 설정합니다. android.useAndroidXtrue로 설정한 경우에만 이 플래그를 true로 설정할 수 있고 그러지 않으면 빌드 오류가 발생합니다.

      자세한 내용은 AndroidX 개요를 읽어보세요.

  • 새로운 코드 축소기 R8: R8은 ProGuard를 대체하는 코드 축소 및 난독화를 위한 새로운 도구입니다. 프로젝트의 gradle.properties 파일에 다음 코드를 포함하여 R8의 미리보기 버전을 사용할 수 있습니다.

            android.enableR8 = true
            
            android.enableR8 = true
            

동작 변경사항

  • D8을 사용한 디슈가링이 기본적으로 사용 설정됩니다.

  • 이제 AAPT2가 Google의 Maven 저장소에 있습니다. AAPT2를 사용하려면 아래와 같이 build.gradle 파일에 google() 종속 항목이 있는지 확인하세요.

              buildscript {
                    repositories {
                        google() // here
                        jcenter()
                    }
                    dependencies {
                        classpath 'com.android.tools.build:gradle:3.2.0'
                    }
                }
                allprojects {
                    repositories {
                        google() // and here
                        jcenter()
                }
              
              buildscript {
                    repositories {
                        google() // here
                        jcenter()
                    }
                    dependencies {
                        classpath 'com.android.tools.build:gradle:3.2.0'
                    }
                }
                allprojects {
                    repositories {
                        google() // and here
                        jcenter()
                }
              
  • 이제 네이티브 멀티덱스가 기본적으로 사용 설정됩니다. 이전 버전의 Android 스튜디오에서는 Android API 수준 21 이상을 실행하는 기기에 앱의 디버그 버전을 배포할 때 네이티브 멀티덱스를 사용 설정했습니다. 이제 기기에 배포하든 출시용 APK를 빌드하든 Android Gradle 플러그인이 minSdkVersion=21 이상을 설정한 모든 모듈에 네이티브 멀티덱스를 사용 설정합니다.

  • 이제 플러그인이 최소 버전의 protobuf 플러그인(0.8.6), Kotlin 플러그인(1.2.50), Crashlytics 플러그인(1.25.4)을 시행합니다.

  • 이제 기능 모듈 플러그인 com.android.feature가 모듈 이름을 지정할 때 문자, 숫자, 밑줄만을 사용하게 합니다. 예를 들어 기능 모듈 이름에 대시가 포함된 경우 빌드 오류가 발생합니다. 이 동작은 동적 기능 플러그인의 동작과 일치합니다.

버그 수정

  • 이제 JavaCompile이 데이터 결합이 있는 프로젝트에서 캐시 가능합니다. (문제 #69243050)
  • 데이터 결합이 있는 라이브러리 모듈에 관한 컴파일 방지가 개선됩니다. (문제 #77539932)
  • 일부 예기치 않은 빌드 오류로 인해 이전 버전에서 configure-on-demand를 사용 중지한 경우 이제 이를 다시 사용 설정할 수 있습니다. (문제 #77910727)