LoginSignup
29
6

More than 1 year has passed since last update.

flutter doctorがAndroid license status unknown.で失敗する場合の対応

Posted at

はじめに

iMacを購入したので、諸々の開発周りのセットアップをしようとしたのですが、flutterの環境構築でハマったので備忘録として投稿しますm(_ _)m

flutterの環境構築

基本的には、公式ページのget startedの通りです。

(私が手順を実施する際には、Android StudioとXcodeは、事前にインストール済の状態でした。)

  1. Flutter SDKをダウンロードする
  2. ダウンロードしたSDKをUnzipする
  3. PATHを通す
  4. $ flutter doctorを実行して、問題がないか確認する

こんな流れですが、$ flutter doctorでエラーが発生しました...

発生したエラー

$ flutter doctor                   
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 2.2.1, on macOS 11.3 20E232 darwin-arm, locale
    ja-JP)
[!] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    ✗ Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/macos#android-setup for
      more details.
[✓] Xcode - develop for iOS and macOS
[✓] Chrome - develop for the web
[✓] Android Studio (version 4.2)
[✓] Connected device (2 available)

Android license status unknown. よく分からないけど、とりあえず指示に従って、
$ flutter doctor --android-licenses を実行してみると、

$ flutter doctor --android-licenses
Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
    at com.android.repository.api.SchemaModule$SchemaModuleVersion.<init>(SchemaModule.java:156)
    at com.android.repository.api.SchemaModule.<init>(SchemaModule.java:75)
    at com.android.sdklib.repository.AndroidSdkHandler.<clinit>(AndroidSdkHandler.java:81)
    at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:73)
    at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:48)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlSchema
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
    ... 5 more

java.lang.NoClassDefFoundError だと...

解決方法

Android Studioから、SDK Managerを選択して、 Android SDK Command-line Toolsをインストールすることで、
私の環境では $ flutter doctor --android-licenses 実行時のエラーが解消されました。

Android Studioから、SDK Managerを選択
1.png

Android SDK Command-line Tools にチェックをつけて、Applyを選択
2.png

改めて、$ flutter doctor --android-licenses を実行したら、
長いライセンスが表示されて、 Accept? (y/N):の確認が表示されました:relaxed:

(ちゃんと読んで、)すべて同意をしたら、$ flutter doctorのエラーも解消されていました!

3.png

これで、Flutterでアプリ開発できそうです(`・ω・´)

さいごに

Mac買い換えると、滅多にやらない対応があってハマりますね(^ω^)

29
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
29
6