문제
신규 프로젝트를 생성하고 안드로이드 에뮬레이터를 실행했는데 아래와 같은 에러가 발생했다.
Error: Command failed: ./gradlew app:installDebug -PreactNativeDevServerPort=8081(Mac React-native Error)
...
android gradle plugin requires java 11 to run. you are currently using java 1.8.
you can try some of the following options:
- changing the ide settings.
- changing the java_home environment variable.
- changing org.gradle.java.home in gradle.properties.
원인
build.gradle에서 사용하는 java 버전이 맞지 않아 발생하는 이슈이다.
해결 방법
먼저 안드로이드 스튜디오에서 해당 프로젝트를 연다.
Preference → Build, Execution, Deployment → Build Tools → Gradle 에서 Gradle JDK를 11버전으로 변경한다.
나의 경우 이미 11버전으로 설정되어 있었다.
그럼에도 불구하고 위 에러가 발생한 이유는 내 시스템의 자바 버전이 1.8 버전이었기 때문이다.
터미널에 java -version을 입력하여 자바 버전을 확인해보자. 나의 경우 1.8버전으로 나왔다.
자바 버전 변경
먼저 자바 11버전을 설치한다.
https://www.oracle.com/kr/java/technologies/javase/jdk11-archive-downloads.html
설치를 마친 후 환경 변수에서 자바 버전을 수정한다.
vim ~/.zshrc로 진입할 수 있다.
i를 눌러 편집한 후 :wq 로 저장하고 source ~/.zshrc 로 변경사항을 실행한다.
그러면 자바 버전이 변경된다.
터미널에 java -version을 입력하여 성공적으로 변경되었는지 확인해보자.
자바 변경 후 VSode와 터미널을 모두 재실행하고 npm run android 를 실행하면 정상적으로 실행된다.
VScode를 재실행하지 않았을 때는 여전히 실행이 안 됐었다. 그냥 속 편하게 다 재실행한 후 실행해보자.