Androidエミュレータの作成に失敗して解決した話
macOS CatalinaでFlutterのインストールでAndroidエミュレータを作成するときに
> flutter emulators --create --name DevelopAndroid
を実行すると
> sdkmanager "system-images;android-27;google_apis_playstore;x86"
を実行するように促されました。実行してみるとsdkmanagerにパスが通ってないので実行できません。
> ~/Library/Android/sdk/tools/bin/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:583)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
... 5 more
調べてみるとこれはJavaのバージョンがあっていないためだそうです。
Java SDKをダウンロードしてインストールします。
export JAVA_HOME=$(/System/Library/Frameworks/JavaVM.framework/Versions/A/Commands/java_home -v "1.8")
を.zshrcなどで設定します。また、設定を読み込みます。再度以下を実行します。
> ~/Library/Android/sdk/tools/bin/sdkmanager "system-images;android-27;google_apis_playstore;x86"
> flutter emulators --create --name DevelopAndroid
無事エミュレータが作成できました。
この記事が気に入ったらサポートをしてみませんか?