Android license status unknown 에러

Android license status unknown 에러에 대해서 알아보고 해결하는 방법에 대해서도 알아보도록 하겠습니다.

맥에서 Flutter로 앱개발을 시도하던 중 위와같은 에러가 발생하여 이 에러에 대해서 정리하려합니다. 우선적으로 Flutter 설치하는 방법은 아래 링크를 통해서 확인하실 수 있습니다.

Error

flutter doctor -v 명령어를 실행했을 때, 분명히 ANDROID SDK 설치도 잘 되었고 ANDROID_HOME 등록도 잘 된것으로 보입니다. 하지만 다음과 같이 ✗ Android license status unknown. 라는 메시지가 나오는 경우가 있습니다.

> flutter doctor -v

...

[!] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
    • Android SDK at /Users/~~~/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-29, build-tools 29.0.3
    • ANDROID_HOME = /Users/~~~/Library/Android/sdk
    • ANDROID_SDK_ROOT = /Users/~~~/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b4-5784211)
    ✗ Android license status unknown.
      Try re-installing or updating your Android SDK Manager.
      See https://developer.android.com/studio/#downloads or visit https://flutter.dev/setup/#android-setup for detailed
      instructions.

...

Reason

  • JDK 버전이 맞지 않는 경우

Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBException 에러에서도 확인할 수 있는 내용으로 JDK9이상 부터 몇 가지 제외된 라이브러리가 있어, 클래스를 찾지 못해서 발생하는 에러입니다.

  • SDK tool을 찾지 못하는 경우
> flutter doctor --android-licenses

Android sdkmanager tool not found (/Users/~~~/Library/Android/sdk/tools/bin/sdkmanager).
Try re-installing or updating your Android SDK,
visit https://flutter.dev/setup/#android-setup for detailed instructions.

Solution

  • JDK 버전을 JDK8 로 변경합니다.
  • Android SDK Tools(Obsolete)을 설치합니다.

  • Preferences 윈도우( + ,) 열어줍니다. (Open Preferences window)
  • 왼쪽 상단에 Android SDK 검색합니다. (search android sdk at left-top search input)

  • Android SDK > SDK Tools 탭으로 이동합니다. (Move SDK Tools tab)

  • 하단의 Hide Obsolete Packages를 체크 해제합니다. (Uncheck Hide Obsolete Packages at bottom)
  • 저는 이미 다운로드한 상태이기 때문에 Android SDK Tools(Obsolete) 영역의 왼쪽에 다운로드 버튼이 없지만, 다운로드 버튼으로 해당 패키지를 다운로드 합니다. (My picture dosen’t have download button, because i already downloaded this package. but you should download this package via download button located at left Android SDK Tools(Obsolete) area)

결과를 확인해보면,

> flutter doctor --android-licenses

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
    • Android SDK at /Users/~~~/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-29, build-tools 29.0.3
    • ANDROID_HOME = /Users/~~~/Library/Android/sdk
    • ANDROID_SDK_ROOT = /Users/~~~/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b4-5784211)
    • All Android licenses accepted.

감사합니다.