UnityでAndroid向けにビルドをしようとすると「Unable to list target platforms」エラーが発生してできなくなったときの対応です。
どうやらUnity 5.6.0以前 + Android SDKのToolsが25.3.1以降の環境で発生しているようです。
目次
[解決] Unity 5.6.1 + SDK Tools 26.0.2はビルドできました
(2017/05/17追記)
5/17時点の最新である、Unity 5.6.1とSDK Tools 26.0.2でビルドしてみたところ、無事成功しました!
SDK ToolsはAndroid Studioからダウンロードしたものです。
つまりUnity 5.6を使っている場合は、Unityを5.6.1にしてSDK Toolsも26.0.2にすれば解決です。
しかしUnity 5.5.2f1、5.6.0f3では駄目でした。ここから察するに5.6.1で何らかの修正が入ったのでしょうか。5.5を使う場合は引き続き25.2.5を使うことになりそう。
また26.0.2は、スタンドアロンのSDK Managerが廃止されてしまったようで…android.batを実行しても、
**************************************************************************
The "android" command is deprecated.
For manual SDK, AVD, and project management, please use Android Studio.
For command-line tools, use tools\bin\sdkmanager.bat
and tools\bin\avdmanager.bat
**************************************************************************
Invalid or unsupported command ""
Supported commands are:
android list target
android list avd
android list device
android create avd
android move avd
android delete avd
android list sdk
android update sdk
なんてすげないメッセージが出るだけで、SDK Managerは起動しませんでした。
本格的にAndroid Studioへの依存が始まるようですね…
[Unity 5.6.0以前の解決方法] Android SDKのToolsをダウングレードする
ここから先は、Unityのバージョンが5.6.0以前の場合になります。
Toolsをダウングレードすればひとまずは治るみたいです。
unity3d 5.5.0fx Unable to list target platforms error
公式の「コマンドライン ツールのみ入手する」からzipをダウンロードして、Android SDKのインストールされているフォルダにある「tools」ディレクトリを入れ替えてやればOK。
Android StudioとSDKツールをダウンロードする
25.3.1はどうやら、Android Studioから取得、更新を行うと入ってくるよう。公式サイトからtoolsだけを落としてくると、25.2.5みたいです。
つまりAndroid Studio付属のマネージャで更新を行うと、このエラーに遭遇します。
入れ替えるべきAndroid SDKのパスについて
肝心のAndroid SDKがある場所については、以下ように確認します。
Unityで「Editor > Preferences」からダイアログを開き、「Extrenal Tools」の項目内にある「Android > SDK」を確認してください。
このパスに、Unityが参照しているAndroid SDKがあります。
また参考までに、AndroidStudioが参照しているAndroid SDKは次のように確認できます。
AndroidStudioの「File > Settings」より開くダイアログの「Application & Behaviour > System Settings > Android SDK」、または「Tools > Android > SDK Manager」より開いたダイアログで、「Android SDK Location」を確認してください。
この問題が発生するということは、この2つの参照先は一致していると思いますが、うまくいかない場合には確認してみるとよいかもしれません。
AndroidStudioとtools付属のSDK Managerで最新バージョンが違うみたい
どうも、AndroidStudioのSDKマネージャと、toolsにあるSDKマネージャで取得してくるバージョンが違うみたい。
AndroidStudioのほうは25.3.1。でも
tools\android.batでみると25.2.5。
つまりAndroidStudioのほうからアプデすると、25.3.1になってしまいます。Unityとの相性で悩んでいる場合はandroid.batのほうでアプデなどしたほうがいいかもしれませんね…(どちらも3/9時点での話ですが)
スタンドアロンのマネージャはandroid.batになっていた
上のandroid.batについて。以前は、公式サイトの配布に「SDK Manager」という実行ファイルが含まれていて、そちらでtoolsや各SDKを取得してきていました。
それが今回は見当たらないなと思ったら、tools\android.batになっていたんですね。
android.batを実行すると、SDK Managerが起動します。全く気づいてなかった…
コメント
ありがたい
お役に立てたのであればよかったです。
原因がわかりづらいですからね…こういうトラブルは…
とても助かりました。
どうもです。解決されたのならなにより。
初めまして
同じような症状に見舞われまして、検索でここにたどり着きました。
unity上で同じエラーメッセージが出たため、ビルドできずSDK tools のバージョンをAndroidStudioのほうで確認したところ、25.3.1だったので、記事通りにダウングレードしようと思うのですが、入れ替えるべきtoolsがあるフォルダがわかりません。
最近インストールしたので該当箇所がAndroid Studioのフォルダだと思っていたのですが差し替えるべきtoolsが見つかりませんでした。
どこか別の場所にあるのでしょうか?(Android SDKというフォルダが他にあるのでしょうか)
もしよかったらお答えいただければありがたいです、よろしくお願いいたします。
初めまして。ご質問ありがとうございます。
お察しの通り、AndroidStudioとAndroid SDKは別のところにあります。
Unityから参照しているAndroid SDKのパスは、Unity上の操作で「Editor > Preferences > External Tools」にある、「Android」の項目の「SDK」で確認することができます。
またご参考までに、AndroidStudioが参照しているAndroid SDKのパスは、「File > Settings」より開くダイアログの「Application & Behaviour > System Settings > Android SDK」、または「Tools > Android > SDK Manager」から開くダイアログの、「Android SDK Location」で確認できます。
この二つのパスは一致していると思いますが、もし違っていた場合は、Unityが参照しているほうのtoolsを入れ替えて対処してみてください。
記事本文にも追記いたしましたので、そちらもご参考になれば幸いです。
前者の方で試したところずっとSDKのパスが表示されておらず、不思議に思っていましたがExternal Toolsウィンドウを拡大したところその欄が出てきました(スクロールバーがなかったことを言い訳にさせてください…)
パスがわかったので、参照したところ、toolsフォルダがあるAndoridSDKフォルダにたどり着くことが出来ました。まだ入れ替えまでは試してはいませんが、これからやってみたいと思います。
素早い返信本当にありがとうございました。
環境によってはパスの表示が見えてないこともあるのですね…SDKフォルダにたどり着けたようでよかったです。
あとは入れ替えるだけだと思うので、がんばってくださいー
初めまして、
こちらの記事のおかげで、問題が解決しました。本当にありがとうございます!
コメントどうもです。お役に立ててよかったです!