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が起動します。全く気づいてなかった…