← 글 목록

notes

Android - Plug In

Android Gradle Plugin의 역할·버전 설정과 빌드 구성 메모.

처음 build.gradle을 열면 루트랑 모듈이 둘 다 있어서 “플러그인이 어디 거지?” 했다. 정리하면 Android Gradle Plugin(AGP) 이 Android용 빌드 규칙을 Gradle에 얹는 쪽이다.

두 층

Version Catalog (gradle/libs.versions.toml) 쓰는 프로젝트면:

# libs.versions.toml
[plugins]
android-application = { id = "com.android.application", version.ref = "agp" }
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
# app/build.gradle.kts
plugins {
    alias(libs.plugins.android.application)
    alias(libs.plugins.kotlin.android)
}

AGP가 해주는 것

  • android { compileSdk, defaultConfig, buildTypes } DSL
  • 리소스 머지, Manifest 머지, dex, 패키징(APK/AAB)
  • Build Variants (debug/release × flavor)

버전 짝

AGP ↔ Gradle ↔ Kotlin 플러그인 버전이 안 맞으면 이상한 sync 에러가 난다. Android Studio New Project 템플릿이 맞춰 준 조합을 기준으로, 호환 표만 보고 올린다.

아래 스크린샷은 루트 플러그인 선언 부분. “apply false”는 루트에서 버전만 고정하고 모듈에서 실제로 apply 하는 패턴.


build.gradle

1.project

  • 위치: 프로젝트 루트 디렉토리에 위치합니다.
  • 역할:
  • 전체 프로젝트에 대한 설정을 포함합니다.
  • Gradle 플러그인 버전, 전체 의존성 관리, 리포지토리 설정 등을 정의합니다.
  • 모든 모듈에 공통적으로 적용되는 설정을 포함합니다.

2.module

  • 위치: 각 모듈(예: 앱 모듈)의 디렉토리에 위치합니다.
  • 역할:
  • 해당 모듈에 대한 설정을 포함합니다.
  • SDK 버전, 의존성, 빌드 타입, 프로가드 설정 등을 정의합니다.
  • 모듈별로 필요한 설정을 관리합니다.