-
Task :react-native-firebase_messaging:compileDebugJavaWithJavac FAILED공부/오류 2022. 9. 20. 18:56
기존에 local에서 테스트를 진행하면서 겪었던 문제랑은 별개라고 생각했는데 비슷한 문제를 겪었고 대략 오전부터시작해서 오후 4시경에 해결할 수있었다. (나의 무지함 덕분에!!)
프론트의 코드를 클론해서 사용하지만 비슷한 문제가 다시 발생할거라고 생각도 못했다.
총 2가지 에러를 어떻게 해결했는지 적어볼것이다.
1. react-native-firebase_messaging:compileDebugJavaWithJavac FAILED
처음 보는 문제.... 구글링을 하고 계속해도 동일한 대답만 들었다. 결국 내 머리와 손이 문제였다.
우선 깃헙과 블로그를 참고하였다.
github -https://github.com/react-native-async-storage/async-storage/issues/496
jdk 확인 및 변경 방법(Mac os 방법) - 참고 블로그
# Java가 있는지 확인
$ brew search jdk
# 기존 설치 여부 확인
$ javac -version

# 여기서 안돼 있다면 OpenJdk 설치해야 한다.
$ brew install --cask adoptdopnjdk
# 원하는 OpenJdk를 선택하여 설치
# 설치 가능한 버전 확인
$ brew search adoptopenjdk
# 버전 확인 후 설치 방법
$ brew install --cask adoptopenjdk-11
# 설치후 javac -version으로 버전 재확인 후
$ /usr/libexec/java_home -V | grep jdk
# 해당 명령어 입력하면 Virtural Machines가 보인다.

# "AdoptOpneJDK 11" 뒤에 있는
# /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home 을 복사한다.
# 터미널에서 vi ~/.bash_profile 입력 후
export ANDROID_HOME=$HOME/Library/Android/sdk export PATH=$PATH:$ANDROID_HOME/emulator export PATH=$PATH:$ANDROID_HOME/tools export PATH=$PATH:$ANDROID_HOME/tools/bin export PATH=$PATH:$ANDROID_HOME/platform-tools # JAVA_HOME뒤에 복사한거 붙여넣기 입력 export JAVA_HOME=/Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home# esc를 누른 후 :wq! 입력후 엔터
# 이후 source ~/.bash_profile 입력
다시 npx react-native run-android 입력하면 정상작동
2. General error during semantic analysis: Unsupported class file major version 60
역시 하나 고치면 하나가 또 말썽이라서 해당 에러를 겪었다.
해당 에러는 jdk 버전 문제로 버전만 바꿔주면 해결이 된다.
내가 해결한 방식은 우선 jdk가 뭐가 설치되어있는지 확인이 필요하고 8, 16이면 안된다고 한다.
(정확한 원인은 다시 기록을 할 예정이지만 다른 jdk로 하면 가능하다.)
참고 blog - https://coding-heesong.tistory.com/21
위에 작성한 것 처럼 현재 Java 확인 먼저 필요
# Java가 있는지 확인
$ brew search jdk
# 기존 설치 여부 확인
$ javac -version
해당 에러 해결을 위해서 jdk를 지우기를 여러번 했다. 우선, 내기준에서 jdk를 변경해야했기 때문에 기존에 아무거나 설치했던 것들을 지워줬다.
# brew search adoptopenjdk 입력하면 현재 설치된것들이 V 표시가 된걸 알수있다.
$ brew search adoptopenjdk

# 설치된 jdk 제거
brew uninstall --cask adoptopenjdk8
# 여기서 했는데도 뭔가 찝찝하면
# /Library/Java/JavaVirtualMachines 으로 이동하여 ls를 입력하면 현재 설치된 jdk를 볼수있다.

# 이후에 내가 필요한 jdk만 남기고 삭제해주고 run 하니 작동하였다.
인터넷을 검색하며 찾아보고 위키와 블로그를 읽어보며 작성한글입니다. 혹시라도 부정확한 정보를 전달드릴수 있습니다. 틀린부분이 있으면 댓글을 남겨주세요.
'공부 > 오류' 카테고리의 다른 글