■現象が発生したときの開発環境
Unity5.3.4
Android SDK Build Tools Version 26
■概要
UnityからAndroidのAPKファイルに書きだそうしたら、エラーが出て書き出し失敗しAPKファイルが作成できなかった。それをどのようにして解決したのか解説します。
エラーダイアログのエラー内容は以下の通り。
Build failure
Unable to list target platforms. Please make sure the android sdk path is correct. See the Console for more details.
コンソール上には以下のようなログが出力されました。
CommandInvokationFailure: Unable to list target platforms. Please make sure the android sdk path is correct. See the Console for more details.
/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home/bin/java -Xmx2048M -Dcom.android.sdkmanager.toolsdir="/Users/liberteenz/Library/Android/sdk/tools" -Dfile.encoding=UTF8 -jar "/Applications/Unity_5.3.4/PlaybackEngines/AndroidPlayer/Tools/sdktools.jar" -
stderr[
Error:Invalid command android
]
stdout[
]
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()
原因
android toolsのバージョンが26になっていて、現象発生時のUnity(Unity5.3.4)に対応していなかったのが原因です。
対処方法
対処方法は、Android SDKのtoolsの内容をTools 25に置き換えました。
(1)tools25のダウンロード
以下のサイトから「tools_r25.2.5-macosx.zip」をダウンロードします。
https://androidsdkoffline.blogspot.jp/p/android-sdk-tools.html
(2)tools_r25.2.5-macosx.zipの解凍
「tools_r25.2.5-macosx.zip」をダウンロードが終わったら解凍します。
その結果、「tools」フォルダが生成されます。
(3)「tools」フォルダの置き換え
「AndroidのRootフォルダ/sdk/tools」のtoolsを(2)で生成された「tools」で置き換えます。
(4)再びビルド
再びビルドします。
その結果、エラーがでなくなり無事にAPKファイルが作成されました。
めでたし、めでたし〜
意外にハマったな・・・。