問題:unity error invalid command android
原因:Android版本較新,Unity版本太舊(如4.X),Unity打包APK時調用Android工具使用的指令已被安卓棄用了(而Unity不知道)。
辦法:替換Android/Sdk/tools檔案夾下的所有内容為老版本的tools。(記得把原來的tools先備份)
問題:UnityEditor.BuildPlayerWindow+BuildMethodException: Build failed with errors.

at UnityEditor.BuildPlayerWindow+DefaultBuildMethods.BuildPlayer (BuildPlayerOptions options) [0x001b9] in C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindowBuildMethods.cs:162
at UnityEditor.BuildPlayerWindow.CallBuildMethods (Boolean askForBuildLocation, BuildOptions defaultBuildOptions) [0x00050] in C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindowBuildMethods.cs:83
UnityEditor.HostView:OnGUI()
原因一:Unity不允許打包到項目的Assets檔案夾中。
辦法:更換一個Build輸出目錄(如輸出到桌面)。
參考:https://answers.unity.com/questions/1380921/build-failed-with-errors-at-unityeditorbuildplayer.html
原因二:Unity2017.1版本中倒出時選擇的Build System是内置的(Internal),且Player Settings裡沒有打上簽名(用的Internal預設的Debug簽名)
辦法:Build System選擇Gradle,在Player Settings中設定簽名。
問題:CommandInvokationFailure: Failed to re-package resources.
場景:做安卓Unity混合開發,把安卓項目導入Unity後再用Unity建構項目時,可能會發生這個錯誤。
原因:直接參照報錯來一個個處理。如圖,是安卓項目在讀取清單檔案AndroidManifest.xml時找不到mipmap檔案夾下的圖檔。我用Android Studio2.3.3建立的項目預設沒有mipmap檔案夾的,自然找不到需要的資源。建立該檔案夾并從mipmap-hdpi檔案夾中拷貝圖檔過來即可。
問題:Unity可以導出APK,但是不能安裝到模拟器/真機上運作。
原因:模拟器上面有過該軟體的早期版本,要先解除安裝了才能再裝新版本上去。
問題:Unable to list target platforms
參考:https://stackoverflow.com/questions/42538433/not-finding-android-sdk-unity
一種說法是Unity5.5與Androi的SDK tool版本沖突,需要重新下載下傳并替換調安卓SDK目錄下的tool檔案夾。
但我在嘗試後依然報這個錯,又看到一種說法這是Unity5.5的Bug,需要更新到5.6或2017.1才能解決。
看來真是版本問題5.6.1修好了,後邊的版本又重複出現,是個蠻嚴重的bug了。
https://forum.unity.com/threads/unity3d-5-5-0fx-unable-to-list-target-platforms-error.446096/page-2
我下了Unity2017.3.0f3再試依然,又多了個新問題:
unity sdk build tools version 0 < 24
一直提示安卓的SDK tool工具版本太低,照上面的方法下載下傳r25.2.5去替換tools也不行。最後檢查Android Studio發現,在SDK Manager中預設是沒有裝上Android SDK Tools這項的!
補裝上去(版本号大于24),Unity這邊就能導包APK成功了!
Gradle編譯報錯
UnityEditor.BuildPlayerWindow+BuildMethodException: 3 errors
at UnityEditor.BuildPlayerWindow+DefaultBuildMethods.BuildPlayer (BuildPlayerOptions options) [0x0020e] in C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindowBuildMethods.cs:181
at UnityEditor.BuildPlayerWindow.CallBuildMethods (Boolean askForBuildLocation, BuildOptions defaultBuildOptions) [0x00065] in C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindowBuildMethods.cs:88
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
CommandInvokationFailure: Gradle build failed.
C:/Program Files/Java/jdk1.8.0_131\bin\java.exe -classpath "D:\Unity 2017.3.0f3\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\gradle\lib\gradle-launcher-4.0.1.jar" org.gradle.launcher.GradleMain "-Dorg.gradle.jvmargs=-Xmx2048m" "assembleRelease"
檢查Player Settings中的包名,密鑰庫路徑,密鑰庫密碼。