Unity編譯時找不到AndroidSDK的問題,Android SDK更新引入的問題。 ...
原文:http://www.jianshu.com/p/fe4c334ee9fe
現象
在用 Unity 編譯 Android 平臺的應用時,遇到 Unable to list target platforms 的問題。
錯誤提示
詳細錯誤描述如下:
Error:Invalid command android
UnityEditor.BuildPlayerWindow:BuildPlayerAndRun()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_91\bin\java.exe -Xmx2048M -Dcom.android.sdkmanager.toolsdir="D:/Android/sdk\tools" -Dfile.encoding=UTF8 -jar "D:\Program Files\Unity\Editor\Data\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.BuildPlayerWindow:BuildPlayerAndRun()
原因
原因簡單描述
Unity 在編譯時會調用 Android SDK tools 中的 android 命令,而在新版本的 Android SDK tools 中,android這個命令已經廢棄了,導致 Unity 無法正常編譯。我的 Android SDK tools 版本是 25.3.1 。
找到問題原因的過程
經過再三確認,我配置的 Android SDK 是沒問題的。
SDK設置
後來我註意到錯誤描述中有提到“無效的命令 android ”,所以我嘗試直接調用 android 這個命令,看是不是有問題。
Error:Invalid command android
android 命令是 AndroidSDK 中 tools 目錄下的 android.bat 。直接調用,發現這個命令已經廢棄了。
The "android" command is no longer available.
For manual SDK and AVD management, please use Android Studio.
For command-line tools, use
tools\bin\sdkmanager.bat and tools\bin\avdmanager.bat
解決方案
知道了原因,問題就好解決了。
- 從官網下載一個舊版本的 Android SDK tools 。tools_r25.2.3-windows.zip。
- 把原來 SDK 目錄下的 tools 備份一下。我是把它重命名成 tools-25.3.1 。
- 把下載好的舊版本的 tools 解壓到 SDK 目錄下。
- 再在 Unity 中重新編譯,問題已經解決了。
對比了一下兩個版本的 tools,差別真的很大,少了很多東西。比如,做.9圖的 draw9patch 就不知道去哪裡了。