flutter doctor --android-licenses のエラー
Jun 26, 2021 23:00 · 605 words · 2 minute read
Flutter2系を触ってみようということで、環境を作りました。
以前Flutterの環境は作ったことがあるのでササッと済ませようと思ったのですが、「flutter doctor –android-licenses」でエラーが発生。
解決した内容をメモしておきます。
以前Flutterの環境を作った時の記事はこちら。
目次
環境
- macOS Catalina 10.15.7
- Android Studio 4.2.1
- Flutter 2.2.2
エラー内容
% 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
解決方法
「Exception in thread “main” java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema」のエラーを調べてみると、Java1.8で動かす必要があるとのこと。
エラー発生時のJavaはこちら。
% java --version
openjdk 12.0.2 2019-07-16
OpenJDK Runtime Environment (build 12.0.2+10)
OpenJDK 64-Bit Server VM (build 12.0.2+10, mixed mode, sharing)
OracleのサイトからJava1.8をダウンロードします。
こちらのやり方でJava1.8に切り替えます。
Javaのバージョンを切り替える(ERR_SSL_PROTOCOL_ERROR, SSL_ERROR_RX_RECORD_TOO_LONG)
.zshrcに下記を追記
export JAVA_HOME=`/System/Library/Frameworks/JavaVM.framework/Versions/A/Commands/java_home -v "1.8"`
PATH=$JAVA_HOME/bin:$PATH
.zshrcの内容を反映させ、Javaのバージョンを確認
% source ~/.zshrc
% java -version
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)
これでライセンスの確認ができました。
% flutter doctor --android-licenses
Warning: File /Users/***/.android/repositories.cfg could not be loaded.
5 of 7 SDK package licenses not accepted. 100% Computing updates...
Review licenses that have not been accepted (y/N)? y