Android Gradle 8로 업데이트하기

강현석·2023년 9월 10일
1

troubleshooting

목록 보기
6/7

Gradle 버전을 8로 변경

  • gradle-wrapper.properties의 distributionUrl을 8.1로 변경한다.
distributionUrl=https\://services.gradle.org/distributions/gradle-8.1-bin.zip
  • com.android.tools.build:gradle 버전을 8.1.1로 변경한다.

8.1로 변경한 이유

현재 Android Studio Stable 버전(Giraffe)의 AGP 버전은 8.1이다.

JDK 버전을 17로 변경

Gradle 버전만 8버전으로 올리면, 아래와 같은 에러가 발생한다.

  • JAVAVERSION_11JAVAVERSION_17 로 변경한다.
    • sourceCompatibility
    • targetCompatibility
    • jvmTarget

Gradle 8 변경점

BuildConfig가 생성되지 않는다면?

  • Gradle 8부터는 빌드 시 BuildConfig가 자동으로 생성되지 않는다.
  • buildFeaturesbuildConfig를 설정하면, 빌드 시 자동으로 생성된다.
  buildFeatures {
    buildConfig = true
  }

외부 모듈의 리소스를 접근하고 있다면?

터미널에서 ./gradlew 명령어가 실패한다면?

  • Gradle 8부터는 JVM 버전이 17 이상이어야 한다.
  • 하지만, 터미널에 ./gradlew을 입력하면 아래와 같은 에러가 발생한다.
    - Incompatible because this component declares a component for use during compile-time, compatible with Java 17 and the consumer needed a component for use during runtime, compatible with Java 11
    - Other compatible attribute:
        - Doesn't say anything about org.gradle.plugin.api-version (required '8.1')
  • 터미널에 ./gradlew --version을 입력하면 JVM 버전이 11이라고 적혀있다.
  • gradlew 명령어 입력 시 JVM을 지정해줄 수 있다.
    • -Dorg.gradle.java.home
    • 예) ./gradlew -Dorg.gradle.java.home=/Library/Java/JavaVirtualMachines/openjdk-17.jdk/Contents/Home ktlintformat

JVM을 매번 지정하기 번거롭다면?

  • jdk17을 설치하고 연결해주면 된다.
  • homebrew가 설치되어있다면, 터미널에 brew install openjdk@17을 입력한다.
  • 설치가 완료되면, 터미널에 아래의 명령어를 입력한다.
    sudo ln -sfn /opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-17.jdk

참고

profile
볼링을 좋아하는 안드로이드 개발자

2개의 댓글

comment-user-thumbnail
2023년 10월 5일

안녕하세요. 혹시 업데이트 하는 도중
out of memory 가 발생했는데 그 이슈는 없으셨을까요?

1개의 답글