ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • java.lang.UnsupportedClassVersionError (JAVA_HOME 안건드리고 해결)
    Programing/기타 오류 해결 2023. 4. 19. 00:04
    반응형

    지난 글에 이어 플러터, 안드로이드 스튜디오 설치하는데 연달아 문제가 발생했습니다.

     

    이럴줄 알았으면 용량 부족하다고 안드로이드 스튜디오 지우지 말고 다른거 지울걸

    >flutter doctor --android-licenses
    java.lang.UnsupportedClassVersionError: com/android/prefs/AndroidLocationsProvider has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
            at java.lang.ClassLoader.defineClass1(Native Method)
            at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
            at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
            at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
            at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
            at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
            at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
            at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
            at java.lang.Class.getDeclaredMethods0(Native Method)
            at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
            at java.lang.Class.privateGetMethodRecursive(Class.java:3048)
            at java.lang.Class.getMethod0(Class.java:3018)
            at java.lang.Class.getMethod(Class.java:1784)
            at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544)
            at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526)
    Error: A JNI error has occurred, please check your installation and try again
    Exception in thread "main"

     

    원인?

    Java가 두개 이상 깔려있어서 발생한 문제라고 합니다. (출처)

    최신버전 말고 java 8.0을 사용하라고 조언합니다.

     

     

    그런데... 싫어...

    자바 설치하기가 싫습니다.

    정확히 말하자면,

    설치한 이후에 환경변수를 건드리고 JAVA_HOME을 건드려야 한다는게 너무 귀찮고 싫습니다.

    이미 Java가 두개 이상 깔려있어서 문제가 발생한건데, 또다시 Java를 설치하라고?

    사양하고 싶습니다.

     

    은인 발견

    그러던 중 flutter issues에서 이런 해결책을 발견합니다.

    https://github.com/flutter/flutter/issues/120388

    시스템 속성, 환경변수 건드리는 것 보다는 훨씬 쉬워보입니다.

     

    따라해봅니다.

     

     

    1. Android Studio - SDK Manager - System Settings

    More Actions - SDK Manager
    SDK Tools 탭을 누릅니다.

    2. Androiod SDK Command-line Tools 을 8.0으로 변경

    • 오른쪽 하단의 [Show Package Details] 체크설정
    • (latest) 설정해제
    • Version 8.0 체크설정
    • 그리고 Apply 버튼 클릭

     

    3. 폴더명을 [/8.0] → [/latest]로 변경

    안드로이드 스튜디오 설치시 설치위치를 변경하지 않았다면 여기로 들어가주세요

    C:\Users\user\AppData\Local\Android\Sdk\cmdline-tools

    • 8.0이라고 되어있는 폴더명을 latest로 변경해주세요 (위의 사진처럼)

     

     

    결과확인

    > flutter doctor --android-licenses
    > flutter doctor

    모두 해결되었습니다!!

    반응형

    댓글

Designed by Tistory.