본문 바로가기

Flutter

Flutter 설치 & openjdk 17 설정

일 년 전쯤 딴짓 하고 싶어 충동 구매했던 Flutter 강의가 있는데, 3주 뒤가 만료라 시작.

강의자 분이 미루지 말라고 수강기간 제한을 두셨다는데... 감사합니다... 기한이 없었다면 영영 까먹었을듯

 

intel mac

맥OS: 12.6.6(Monterey)

Flutter: 2.10.5

Xcode: 13.4.1

 

최신 버전은 Flutter 3.대에 Xcode 14.대지만, 맥OS 버전이 받쳐주지 않아 돌아가는 걸로 맞춰 설치했다.

 

Android studio는 최신(2022.3.1.19) 버전 설치 후 android license 동의 단계에서 아래 오류가 생겼다.

➜  ~ flutter doctor --android-licenses
오류: 기본 클래스 com.android.sdklib.tool.sdkmanager.SdkManagerCli을(를) 로드하는 중 LinkageError가 발생했습니다.
	java.lang.UnsupportedClassVersionError: com/android/sdklib/tool/sdkmanager/SdkManagerCli 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 53.0

jdk 버전이 낮아서 생긴 문제이니 상위 버전을 설치한다.

에러 메세지에서 요구하는 class file version 61.0을 충족하기 위해서는 jdk 17이 필요했다.

# openjdk 17 버전 설치
brew install openjdk@17

설치 후 java 버전을 확인했는데 17이 아닌 기존 버전일 때 (참고)

참고한 게시물은 m1이라 아래와 같이 intel에 맞게 경로 수정하여 반영.

sudo ln -sfn /usr/local/opt/openjdk@17/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-17.jdk
echo 'export PATH="/usr/local/opt/openjdk@17/bin:$PATH"' >> ~/.zshrc

경로 설정 완료

 

flutter doctor 실행시 잔여 이슈

[!] Android Studio (version 2022.3)
    ✗ Unable to find bundled Java version.

해결 방법: /Applications/Android\ Studio.app/Contents 내에 jbr로 연결되는 jre 만들기 (참고1, 참고2)

 

jdk 버전 충돌 때문인줄 알고 시도해보았지만 아니었던 방법들

1. 환경변수 STUDIO_JDK 설정 (참고)

2. /Applications/Android\ Studio.app/Contents의 Info.plist를 직접 수정하는 방식은 권장하지 않음. (참고 내 서치 키워드 Info.plist)