ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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 하니 작동하였다.

     

    인터넷을 검색하며 찾아보고 위키와 블로그를 읽어보며 작성한글입니다. 혹시라도 부정확한 정보를 전달드릴수 있습니다. 틀린부분이 있으면 댓글을 남겨주세요.

    댓글

Designed by Tistory.