naichi's lab

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

【Unity、Android】最新のAndroidStudio入れたらUnable to list target platforms.が出て困った

WindowsPCでAndroidビルドしようとしたらエラーした

環境

  • Windows 10 Home
  • Unity 5.6.0f3

症状

状況

WindowsPC買い替えて、Unity5.6インストール。 Android Studioも最新版いれて、JDK1.8も入れた。

さてAndroidビルドするか。->エラー

f:id:naichilab:20170409155809p:plain

Unable to list target platforms. Please make sure the
android sdk path is correct. See the Console for more
details. See the Console for details.

コンソール

CommandInvokationFailure: Unable to list target platforms. Please make sure the android sdk path is correct. See the Console for more details. 
C:/Program Files/Java/jdk1.8.0_121\bin\java.exe -Xmx2048M -Dcom.android.sdkmanager.toolsdir="C:\Users\kitte\AppData\Local\Android\Sdk\tools" -Dfile.encoding=UTF8 -jar "C:\Program Files\Unity\Editor\Data\PlaybackEngines\AndroidPlayer/Tools\sdktools.jar" -
stderr[
Error:Invalid command android
]
stdout[
]
exit code: 64
UnityEditor.Android.Command.Run (System.Diagnostics.ProcessStartInfo psi, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)
UnityEditor.Android.AndroidSDKTools.RunCommandInternal (System.String javaExe, System.String sdkToolsDir, System.String[] sdkToolCommand, Int32 memoryMB, System.String workingdir, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)
UnityEditor.Android.AndroidSDKTools.RunCommandSafe (System.String javaExe, System.String sdkToolsDir, System.String[] sdkToolCommand, Int32 memoryMB, System.String workingdir, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)
UnityEditor.HostView:OnGUI()
Error building Player: CommandInvokationFailure: Unable to list target platforms. Please make sure the android sdk path is correct. See the Console for more details. 
C:/Program Files/Java/jdk1.8.0_121\bin\java.exe -Xmx2048M -Dcom.android.sdkmanager.toolsdir="C:\Users\kitte\AppData\Local\Android\Sdk\tools" -Dfile.encoding=UTF8 -jar "C:\Program Files\Unity\Editor\Data\PlaybackEngines\AndroidPlayer/Tools\sdktools.jar" -
stderr[
Error:Invalid command android
]
stdout[
]
exit code: 64

なんのこっちゃ

Android Studio でSDKパスを確認

Android Studioを起動して右下から

f:id:naichilab:20170409160326p:plain

f:id:naichilab:20170409160357p:plain

書かれてるパスをコピー

f:id:naichilab:20170409160432p:plain

Unity側

f:id:naichilab:20170409160515p:plain

ちゃんと入ってる。

ぐぐる

それっぽい記事が見つかった

Unityで「Unable to list target platforms」というエラーが出て、Android向けビルドができなくなった場合の対処法

Android Sdk Toolsのバージョン確認

AndroidStudio -> Configure -> SDK Manager

f:id:naichilab:20170409163116p:plain

26.0.1 だった。

Android.bat のほうのバージョン確認

って↑の記事に書かれてる Android.bat 起動しない・・・

AndroidStudioのメニューから Tools -> Android -> SDK Managerってやっても同じものが起動するし・・・

別の記事を参考に

qiita.com

ダウンロード

https://developer.android.com/studio/index.html

一番下の tools_r25.2.3-windows.zip

f:id:naichilab:20170409165657p:plain

293Mって・・・

Android SDK Tools フォルダを上書きする

SDKフォルダのtoolsフォルダはリネームしておく

プロセスから adb 殺さないとリネームできないかも

f:id:naichilab:20170409170049p:plain

さっきダウンロードしたファイルを解凍して、tools フォルダとしてコピーする

新旧toolsフォルダの中身

f:id:naichilab:20170409170232p:plain

全然ちがう・・・

ビルド

通った!!!!

まとめ

  • 新しいAndroidStudioだとSDKToolsの構造が違うみたい。
  • Unity側がまだそれに対応してないのかな。
  • SDKToolsのフォルダを手動でダウングレードして対応。