エラー
Androidのエミュレータを動かそうとしたら下記のエラーが出た。
No suitable Android AVD system images are available. You may need to install these using sdkmanager, for example: sdkmanager "system-images;android-27;google_apis_playstore;x86"
言われた通り、sdkmanager "system-images;android-27;google_apis_playstore;x86
をターミナルで実行すると
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:602)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
... 5 more
というエラーがでる。
解決
※ なぜこれでうまくいくのかを把握していないので、実行する時は気をつけてください。
JDKをインストールすればよかった。Macの場合は brew cask でやると便利だ。
brew cask install java
これでダメな時はパスが通っているか確認する。それでもダメなら下記の通りバージョンを下げる。java8は使えなくなっているらしいのでadoptopenjdk8
を使う。
brew cask install adoptopenjdk8
パスを通す(java8の時)
export JAVA_HOME=`/usr/libexec/java_home -v "1.8"`
PATH=${JAVA_HOME}/bin:${PATH}
環境
Mac Catalina 10.15.4
参考
-
homebrew-caskでJava8をインストールする
https://qiita.com/d_forest/items/290bb05bb929e5d74647 -
Faild to install ...
https://stackoverflow.com/questions/46402772/failed-to-install-android-sdk-java-lang-noclassdeffounderror-javax-xml-bind-a -
javaのアンインストール方法:
https://www.java.com/ja/download/help/mac_uninstall_java.xml