【Unity】打包安卓APK常見問題


問題: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輸出目錄(如輸出到桌面)。
原因二: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中的包名,密鑰庫路徑,密鑰庫密碼。

 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM