기존에 작업중인 앱말고 새로운 앱을 만들게 되었는데, 개발환경이 많이 달라졌다.
분류 | 기존 앱 | 신규 앱 |
---|---|---|
개발언어 | JavaScript | TypeScript |
React Version | React 17 | React 18 |
React Native Version | RN 0.68.5 | RN 0.73.6 |
Java Version | JAVA 11 | JAVA 17 |
Cause: com/android/tools/lint/model/LintModelSeverity has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 55.0
해당 오류메시지의 내용을 보자면, 다음과 같다.
LintModelSeverity
클래스 파일이 현재 사용 중인 자바 런타임 버전보다 더 최신버전으로 컴파일되어 발생하는 원인이다.
구체적으로, LintModelSeverity
클래스 파일 버전은 61.0은 JAVA 17에 해당하며,
현재 사용 중인 자바 런타임은 클래스 파일 버전은 55.0 (즉, JAVA 11)까지만 인식할 수 있다.
현재 사용 중인 자바 버전이 JAVA 17이 아닌 경우, 그 이상으로 업그레이드 해야 한다.
$ java -version
해당 명령어를 통해, 자바 버전을 확인할 수 있다.
JAVA 17을 설치하려면, OpenJDK 또는 Oracle JDK 웹사이트에서 다운로드해서 설치하면 된다.
위와 같이 자바 버전을 업그레이드한 뒤, 프로젝트가 올바른 버전을 사용하도록 설정을 확인해야 한다.
RN 프로젝트의경우, 다음과 같은 파일에서 확인할 수 있다.
android/gradle.properties
org.gradle.java.home=java17경로
해당 파일에서 org.gradle.java.home
속성을 설정해서 JAVA 17 설치 경로를 지정할 수 있다.
android/build.gradle
android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
}
kotlinOptions {
jvmTarget = "17"
}
}
compileOptions
및 kotlinOptions
을 수정해서 올바른 자바버전을 사용할 수 있도록 설정할 수 있다.
위처럼, 자바 버전을 업그레이드하고 설정을 수정한 뒤,
Gradle 캐시를 삭제하고 빌드를 재시도하기 위해 터미널에서 다음 명령어를 실행한다.
$ cd android
$ ./gradlew clean
$ cd ..
$ npx react-native run-android
하지만, 나의 경우 다 같이 사용하는 프로젝트이기 때문에 파일을 수정하고 싶지 않아서
Android Studio 의 설정을 수정해서 해결하고 싶었다.
Android Studio에서 사용되는 JDK를 변경하는 방법은 다음과 같다.
상단 File
> Project Structure
> 왼쪽패널의 SDK Location
메뉴
선택을 하라고 하지만, Gradle Settings 메뉴로 옮겨졌다고 나온다.
위처럼 Use Gradle From 항목을 gradle-wrapper.properties
file 선택하라고 되어있었지만,
아래처럼 Specified location
항목으로 선택한 다음, 파일 위치를 java 17로 선택해준다.
나의 경우, 다음과 같이 java 17를 설치한 위치를 선택해주었다.
C:\Program Files/Java/java-17
❗ Specified location 을 선택했을때 Gradle is not found 이라는 식의 경고 문구가 발생한다면?
C:\Programs Files\ava\jdk-17 파일
을 선택했지만, 노란색 툴팁으로 Gradle is not found 이라는 식의 경고 문구가 발생했다.
Use Gradle From
메뉴에서 파일을 선택하려면 Gradle을 선택해야 하는데,
나의 경우는 JAVA 17를 선택해서 해당 경고메시지가 발생했다.이를 해결하기 위해서는 최신 Gradle을 다운받고 설치된 Gradle 파일경로를
Specified location
으로 설정하면 된다.아래 Chocolately 패키지를 활용해서 Gradle 다운로드 항목에서 이어서 작성했다.
상단메뉴 File
> Settings
> 왼쪽패널 Build, Execution, Deployment
> Build Tools
> Gradle
메뉴 선택
Gradle JDK 옵션에서 JAVA 17 SDK를 선택한다.
만약 목록에 JAVA 17가 없다면 ...
버튼을 클릭해서 JAVA 17 JDK를 수동으로 저장해서 추가할 수도 있다.
모든 설정을 변경한 뒤, Android Studio 상단 메뉴의 File
> Sync Project with Gradle Files
을 클릭해서 프로젝트를 동기화 한다.
Build
> Rebuild Project
메뉴를 선택해서 프로젝트를 다시 빌드한다.
Windows PowerShell를 관리자형으로 실행해서 다음과 같이 gradle 를 다운로드 했다.
$ choco install gradle
다음과 같은 로그가 실행되었는데, Chocolatey를 통해 Gradle 설치를 성공했다는 내용과
설치된 Gradle의 위치는 C:\ProgramData\chocolatey\lib\gradle\tools
이라고 확인된다.
Chocolatey v0.12.1
Installing the following packages:
gradle
By installing, you accept licenses for the packages.
gradle v8.7.0 [Approved]
gradle package files install completed. Performing other installation steps.
The package gradle wants to run 'chocolateyinstall.ps1'.
Note: If you don't run this script, the installation will fail.
Note: To confirm automatically next time, use '-y' or consider:
choco feature enable -n allowGlobalConfirmation
Do you want to run the script?([Y]es/[A]ll - yes to all/[N]o/[P]rint): y
Downloading gradle
from 'https://services.gradle.org/distributions/gradle-8.7-all.zip'
Progress: 100% - Completed download of C:\Users\UserName\AppData\Local\Temp\chocolatey\gradle\8.7.0\gradle-8.7-all.zip (214.04 MB).
Download of gradle-8.7-all.zip (214.04 MB) completed.
Hashes match.
Extracting C:\Users\UserName\AppData\Local\Temp\chocolatey\gradle\8.7.0\gradle-8.7-all.zip to C:\ProgramData\chocolatey\lib\gradle\tools...
C:\ProgramData\chocolatey\lib\gradle\tools
Added C:\ProgramData\chocolatey\bin\gradle.exe shim pointed to '..\lib\gradle\tools\gradle-8.7\bin\gradle.bat'.
Environment Vars (like PATH) have changed. Close/reopen your shell to
see the changes (or in powershell/cmd.exe just type `refreshenv`).
The install of gradle was successful.
Software installed to 'C:\ProgramData\chocolatey\lib\gradle\tools'
Chocolatey installed 1/1 packages.
See the log for details (C:\ProgramData\chocolatey\logs\chocolatey.log).
나의 경우, ProgramData 폴더는 숨겨져있어서 직접 찾기 힘들었기 때문에
경로를 아래와 같이 직접 입력했다.
C:\ProgramData\chocolatey\lib\gradle\tools\gradle-8.7\bin\gradle.bat