Flutter環境構築する時にかなりハマってしまい、記事が見つからなかったためメモ。
##対象読者について
「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)
##対応方法について
###①Javaのバージョン確認
まずはJavaのバージョンを確認する。
java -version
以下以外のバージョンが表示された場合、インストール済みのjavaを削除し、java8をダウンロードする。
https://www.oracle.com/jp/java/technologies/javase/javase-jdk8-downloads.html
java version "1.8.0_202"
Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)
###②AndroidStudioのSDK設定を変更する
以下の画面で「Configure」→「SDK Manager」を選択。
SDKManagerが表示されたら、サイドメニューでAndrod SDKを選択し、以下2つの画面で設定を変更する。
上記2つをそれぞれ変更した後、Applyを押すと変更が反映される。
変更後、再度「flutter doctor --android-licenses」を入力すると、ライセンスの設定が開始される。
flutter doctorの結果は以下。
誰かの役に立てば幸いです。
参考にしたのは以下URLです。
https://github.com/flutter/flutter/issues/57017