능히 해낼 수 있다
230906 Flutter: Android SDK Manager 실행 오류 해결(window) 본문
✍️✍️✍️ 위 글은 작성자의 지식습득에 따라 추후 퇴고 될 수 있음을 알려드립니다(피드백 환영).
해보고 싶은게 있어서 잠시 놓아 두었던 flutter 관련 프로그램 세팅을 다시 시작했다. Null safty가 도입될 때즘 배우기 시작해 버전이 3으로 올라가기 직전에 잠시 놓아두었다. 놓은 기간은 대략 반년 정도로 짧은 시간임에도 불구하고 구글은 엄청나게 flutter를 업데이트를 했다. 때문에 flutter를 위해 세팅해뒀던 프로그램 세팅을 거의 전부 다 버전을 맞춰 수동 업데이트 또는 추가 삭제등을 진행했다. 그 과정에서 있었던 오류 해결기를 살짝 적어보려한다.
이슈발견
터미널에 flutter doctor -v를 입력해 플러터 프로젝트에 필요한 프로그램들이 잘 있는지 확인해봤다.
Android toolchain 부분에서 Java version OpenJDK Runtime 이슈와 Android licnese status unknown이슈가 발생했엇는데, 첫번째 이슈는 Java를 최신버전으로 다운받고 환경변수를 설정하면서 쉽게 해결할 수 있었다. 하지만 두번째 이슈인 라이센스 이슈가 며칠동안 해결이 안됐었다.
"Android license status unknown" 이 이슈는 몇가지 이유로 발생할 수 있는데,
1. Android SDK의 설치 상태를 인식하지 않거나 문제가 있는경우
2. Android SDK의 경로가 올바르게 설정되지 않았거나 환경 변수에 문제가 있는 경우
나같은 경우는 1번에 가까웠다. 에러메시지에 대해 좀 더 살펴 보자면
"Android license status unknown. run flutter doctor --android-license to accept the SDK licenses": 안드로이드 라이선스 상태를 알 수 없으니 flutter doctor --android-license를 실행하여 SDK 라이선스를 수락하라고 알려주고있다.
flutter doctor --android-licenses 입력해보자
아니 명령어 입력해 보라고 해놓고 왜 안되는거람.
하지만 그래도 해결해야지 어쩌겠어라는 마음으로 오류메시지를 살펴 보자.
메시지 내용은 SDK Manager 도구를 찾을 수 없어 SDK를 다시 다운을 받아야 한다라는 내용을 보여 주고 있다. 도구를 찾을 수 없는 이유는 보통 Android SDK Manager를 실행 시, 클래스 파일 버전이 호환되지 않아 발생한다. 이를 위해 아래 사진들 처럼 SDK Platform에서 로컬에 맞고 필요한 버전을 다운받고 SDK Tools에선 패키지 디테일 체크박스를 클릭해 필요한 도구들을 다운받아준다. 에러 메시지 내용에 따라, 그리고 필요에 따라 다운 받는 패키지는 조금씩 달라진다.
앞서 이야기 했던것 처럼 나는 이전 버전으로 진행했던 프로젝트들 때문에 다운받아져있던 것들이 있었는데, 버전업으로 인해 기존의 것들이 호환이 안되는데 다른 곳에서 원인을 찾으려고 했던 것이 시간이 오래걸린 이유였던것 같다. 그래서 빨간 체크들을 전부 다 삭제하고 재설치를 진행했다.
삭제가 되었든 다운로드가 되었든 항상 Apply를 눌러서 진행해야한다. OK누른다고 다운받아지는 것이 아니다!
다운 받고 환경 변수에 필요한 path값을 정확히 적어서 등록 및 저장해 준다(환경 변수 관련된 내용은 아래 참고 링크를 통해 확인!).
결국엔 해결했다
명령어를 입력해보니 경고지만 무시가 가능한 내용이 나와서 우선 희망을 갖고 한 번 더 flutter doctor -v 때려보니
아래 사진 처럼 터미널에서 아주 클린한 결과물을 볼 수 있었다. 흑흑
간만에 플러터 해보겠다고 프로젝트 진행하기 전에 확인하다가 이렇게까지 세팅 시간이 오래 걸릴 줄 몰랐다. JAVA버전이 너무 오래 되어 조건에 맞지 않는 것도 당황스러웠고, 환경변수명을 등록하는 것도 이전에 작성하던 방법과는 다르게 바뀐것 같아 공홈까지 들어가봐야 했다. 뭐든 오랜만에 하는 것은 어렵고 세팅하는 방법은 휘발성이 짙은 것 같다. 하지만 이번엔 블로그에 작성했으니 모르면 다시 살펴보고 진행할 수 있을듯 하다
이제 작고 소중한 프로젝트를 시작해봐야지 :)
참고한 곳
'개발🌐 > Flutter | Dart' 카테고리의 다른 글
230914 Flutter: BLoC 참조와 의존성 주입 (0) | 2023.09.14 |
---|---|
230911 Dart: Records (0) | 2023.09.11 |
230909 Flutter: 상황 별 주요 명령어 (0) | 2023.09.09 |