포스트

안드로이드 스튜디오 Java 버전 변경(Gradle, JDK, AGP)

안드로이드 스튜디오 Java 버전 변경(Gradle, JDK, AGP)

이 글은 Tistory에서 이전된 포스팅입니다. 원본은 여기에서 확인할 수 있습니다.

안드로이드 스튜디오로 개발할 때, 다음 요소들의 버전을 맞춘다.

  • Gradle
  • AGP( Android Gradle Plugin )
  • Gradle JDK & Java Version

gradle-wrapper.properties (Gradle)

1
2
3
4
5
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

해당 파일에서 Gradle Version을 수정할 수 있다. (위 코드에서는 8.7)

https://docs.gradle.org/current/userguide/compatibility.html

Gradle은 JVM 위에서 동작하고, Gradle JDK에 따른 Gradle Version 호환성이 있다.

AGP( Android Gradle Plugin )

AGP & Gradle Compatibility

AGP는 Gradle(빌드 자동화 도구)을 기반으로 동작하는 안드로이드 프로젝트 플러그인이다.

따라서, Gradle Version에 따른 AGP Version 호환성이 있다.

libs.versions.toml

1
2
3
4
5
6
7
8
9
10
11
12
[versions]
agp = "8.5.2"
junit = "4.13.2"
junitVersion = "1.2.1"
espressoCore = "3.6.1"
appcompat = "1.7.0"
material = "1.12.0"
constraintlayout = "2.1.4"
navigationFragment = "2.7.7"
navigationUi = "2.7.7"

...

플러그인 DSL 경우, libs.version.toml 파일에서

Groovy의 경우, build.gradle(app) 파일에서 AGP Version을 수정할 수 있다.

안드로이드 스튜디오에서도 가능하다.

(window) File → Project Structure → Project → AGP Version

Gradle JDK & Java Version

JDK guide docs

Gradle 빌드를 실행할 JDK를 선택하려면

(window) File → Settings → Build, Execution, Deployment → Build Tools → Gradle

build.gradle (app)

1
2
3
4
    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_17
        targetCompatibility = JavaVersion.VERSION_17
    }

다음 gradle 설정은 소스 코드 컴파일 시 규격을 정의한다.

예를 들어 아래 설정과 같다면

Gradle JDK = 21

sourceCompatibility = 11

targetCompatibility = 17

Gradle이 빌드하는 동안 컴파일, 테스트, 패키징 등을 처리할 때 Java 21 환경에서 작업을 한다. (gradle jdk)

소스 코드 컴파일 시 Java 11 문법을 사용한다. (source)

생성된 바이트 코드가 Java 17 JVM에서만 실행가능하도록 만든다. (target)

.class 파일의 major verison이 55(java 11) => 61(java 17)로 바뀜

gradle jdk는 gradle build에 대한 자바 버전으로 위 표와 관련이 없다. 위 표는 source/target Compatibility와 관련이 있다.

android api에 따라 필요한 agp가 있고, agp가 지원하는 java 버전이 정해져 있다. 15(API 35)도 java 17을 업데이트한다.

https://developer.android.com/about/versions/15/summary?utm_source=chatgpt.com&hl=ko


프로젝트를 재현하거나 파악한다면, Gradle을 먼저 보고 AGP와 Gradle JDK를 맞추면 된다.

이 기사는 저작권자의 CC BY-NC 4.0 라이센스를 따릅니다.