Android/Error

오류 수정 방법 : BUG! exception in phase 'semantic analysis' in source unit '_BuildScript_' Unsupported class file major version

Dev.Cho 2023. 5. 12. 14:02

애러 개요

여러 프로젝트를 다루다 보니, 앱을 빌드할 때 아래와 같은 오류가 나는 경우가 생겼다.

BUG! exception in phase 'semantic analysis' in source unit '_BuildScript_' Unsupported class file major version 64

애러 화면

 

문제 원인

현재 Gradle 버전과 Java Version이 일치하지 않을 때 오류가 발생한다.

나의 경우 JDK 버전을 20으로 쓰고 Gradle 버전을 8.0으로 써서 문제가 생겼다.

 

JDK 버전 확인 방법

1. 프로젝트에 설정된 JDK 버전을 확인하기 위해 다음 메뉴에 진입한다.  Android Studio > Preferences... 

2. Build, Execution, Deployment  > Build Tools > Gradle에 진입하면 오른쪽 아래에서 Gradle JDK를 통해 현재 설정된 JDK 버전 확인이 가능하다.

여기서 보면  Gradle을 프로젝트 내부의 gradle-wrapper.properties 파일에서 가져온다고 되어 있으므로 아래와 같이 Gradle 버전을 확인할 수 있다.

 

Gradle 버전 확인 방법

1. 프로젝트에 설정된 JDK 버전은 [프로젝트 폴더]/gradle/wrapper/gradle-wrapper.properties에서 확인 가능하다.

 

2. gradle-wrapper.properties 파일을 보면 아래와 같이 설정되어 있는데, 여기서 distributionUrl 에서 [Gradle 버전] 확인이 가능하다.

distributionUrl=https\://services.gradle.org/distributions/gradle-[Gradle 버전]-bin.zip

 

해결방법

이에 대한 호환성 표는 아래와 같다. 현재 내가 쓰고 있는 것은 JDK20 버전으므로 Gradle 버전을 8.1로 설정하는 것이 필요하다.

Java version First Gradle version to support it
8 2.0
9 4.3
10 4.7
11 5.0
12 5.4
13 6.0
14 6.3
15 6.7
16 7.0
17 7.3
18 7.5
19 7.6
20 8.1 

 

따라서 gradle 8.0이 지원되는 JDK인 JDK17로 JDK를 변경하면 빌드가 성공하는 것을 볼 수 있다.

 

 

Reference

 

Compatibility Matrix

Gradle is tested with Android Gradle Plugin 7.3, 7.4 and 8.0. Alpha and beta versions may or may not work.

docs.gradle.org

 

반응형