naichi's lab

3日後の自分(他人)への書き置き

【Unity、Mac、Android】Failed to update Android SDK package list. (未解決)

環境

  • Mac OS X
  • Unity Hub 2.1.0
  • Unity 2019.2.1f1 (UnityHubでインストール)
  • ビルドターゲット:Android

症状

遭遇したエラー

久々に開いた過去プロジェクトをUnity2019.2.1f1に更新し、プラットフォームをAndroidに切り替えて、 Player Settings を開いたら以下のように何も表示されなかった。

f:id:naichilab:20190825033610p:plain:w320

コンソールを見るとなんか色々出てる。

f:id:naichilab:20190825033701p:plain:w320

なんかAndroid SDKの設定がうまくいってないっぽいですね。

エラー詳細

CommandInvokationFailure: Failed to update Android SDK package list.
/Users/naichi/Library/Android/sdk/tools/bin/sdkmanager --list

stderr[
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
]
stdout[

]
exit code: 1
// 以下スタックトレース

Unity Hubからインストールした Unity 2019.2.1f1を使ってます。

うまくAndroidSDKが設定できてないと思われます。

Android SDKの設定確認

Unity -> Preferences -> External Tools

f:id:naichilab:20190825034030p:plain:w320

なんか警告出てますね。

You are missing the recommended Android SDK Tools. Install the recommended version with Unity Hub.

推奨するバージョンのAndroidSDK入ってねーからUnityHubから入れろよーっと。

Unity Hub

どこから入れるんだ・・・って探したら見つけた。

Unity Hub起動 -> インストール -> 対象バージョンのメニュー -> モジュールを加える

f:id:naichilab:20190825034354p:plain:w320

Android Build Supportを 開き -> Android SDK & NDK Tools および OpenJDK にチェックを入れてインストール

f:id:naichilab:20190825034542p:plain:w320

ライセンス確認して同意したら実行

f:id:naichilab:20190825034637p:plain:w320

インストール待ち〜

確認

Unity -> Preferences

f:id:naichilab:20190825035356p:plain:w320

綺麗になりました。

Android Player Settings

f:id:naichilab:20190825035512p:plain:w320

ダメじゃん!!!

出てるエラーは一緒だけどパスは変わりましたねw

CommandInvokationFailure: Failed to update Android SDK package list.
/Applications/Unity/Hub/Editor/2019.2.1f1/PlaybackEngines/AndroidPlayer/SDK/tools/bin/sdkmanager --list

ググったの試す(これはダメだった)

エラーメッセージでググるとこの記事を見つけました。

qiita.com

書かれてる通り試してみたけど解決せず。

Android SDK Toolsのバージョン

Android Studio -> Configure -> SDK Manager

Android SDK LocationがUnityで入れたものと異なってる(Android Studio入れた時のまま)のでUnityのものと合わせる。(多少ダウンロードが走る)

f:id:naichilab:20190826012656p:plain:w320

Android SDK Tools 26.1.1なので最新っぽいですね。

SDK Tools release notes  |  Android Developers

古ければアップデートしようと思いましたが特に何もできず。

SDK Toolsダウングレード?

なんか似たようなことしたよなぁと過去記事検索したらありました。

blog.naichilab.com

2年前、Unity5.6のときにSDK Toolsを25.2.3にダウングレードして対応してます。

直りそうではあるけど2年も経って同じことするのもなんだかなぁ。

AndroidBuild、UnityCloudBuildで出来てるし一旦保留しよ・・・

Unity 2019 + Android SDK Tools 26.1.1でビルド出来てる方いらっしゃいましたら情報いただけますと嬉しいです。