React-Native gradle unsupported claass file major verion 62 error 해결하기
개요
IOS 빌드에 성공한 프로젝트를 안드로이드 빌드하였을 떄 에러가 출력되며 빌드에 실 패했습니다.
이는 gradle이 지원하지 않는 jdk 버전을 사용하여 발생하는 문제입니다
FAILURE: Build failed with an exception.
* Where:
Settings file '/Users/taegyeonglee/Documents/GitHub/Checked/android/settings.gradle'
* What went wrong:
Could not compile settings file '/Users/taegyeonglee/Documents/GitHub/Checked/android/settings.gradle'.
> startup failed:
General error during conversion: Unsupported class file major version 62
문제 분석
gradle의 java 지원 버전 확인
gradle 공식 문서에서 gradle이 지원하는 java 버전을 확인합니다.
각 자바 버전을 지원하는 gradle 버전을 확인할 수 있습니다. java18은 아직 지원되지 않네요.
로컬 gradle 버전 확인
제 gralde 버전과 java 버전을 확인해보겠습니다.
gradle 버전을 확인하기 위해선 프로젝트/android/gradle/wrapper/gradle-wrapper.properties
내 distributionUrl 항목을 확인합니다.
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
제 gradle 버전이 7.2임을 확인할 수 있습니다.
java 버전 확인
터미널에 java --version
을 입력해 로컬 환경에 설치, 적용된 자바 버전을 확인합니다.
(base) taegyeonglee@Taegyeongui-MacBookAir Checked % java --version
java 18.0.1.1 2022-04-22
Java(TM) SE Runtime Environment (build 18.0.1.1+2-6)
Java HotSpot(TM) 64-Bit Server VM (build 18.0.1.1+2-6, mixed mode, sharing)
java18의 클래스 파일 버전이 62임을 고려했을 때 해당 오류는 java18과 로컬 gradle의 호환문제임을 유추할 수 있습니다.
제 로컬 환경 gradle이 지원하지 않는 java18이 설치되어 있음을 확인했습니다.
현재 제 gradle 버전이 7.2이므로 이에 맞는 가장 최신(latest) java버전은 java16이군요.
java18을 삭제하고 java16 이전 LTS 버전인 java11을 재설치 하여 문제를 해결해 보겠습니다.
정보
java16으로 재설치를 해보았으나 호환성 문제로 발생하는 빌드 오류가 발생했습니다. 따라서 java16이 아닌 LTS 버전인 java11로 설치합니다.