最近遇到幾個Unity Build Failed的問題,
來分享一下我遇到的問題和解法。
狀況一:Build Android apk時會失敗
彈出視窗顯示
"Failed to recompile android resource files"
Console Log則顯示
Failed to compile resources with the following parameters: -bootclasspath
(後面接的是Android SDK路徑)
Unity版本:2017.1.2f1
Unity IAP插件版本:最新。
SDK:我原本以為是SDK太新,試著移除API 27,退回到API 25,但狀況並沒有改變。
NDK:試著更新到最新,沒什麼改變。
最後終於找到關鍵:JDK,
(我是選擇安裝JDK 8u152)
狀況二:將iOS專案Build為Xcode專案時會失敗
Console Log顯示
"Failed running /Applications/Unity/Unity.app/Contents/il2cpp/build/UnityLinker.exe --api=NET_2_0_Subset"
解決辦法:Services > Unity IAP > Reimport
狀況三:Xcode專案匯出ipa檔時會失敗
從Log中可以看出,問題可能在於UnityAdsUnityWrapper,
最後找到原因:新版本的Unity Ads已經不需要從Asset Store安裝插件包了,
只要從Services > Unity Ads開啟即可。
舊的Ads插件包就必須刪除,否則在Xcode中會有重複的文件而出錯。
請將Assets/UnityAds資料夾,
及Assets/Plugins/下的iOS、Android資料夾都刪除即可。
(如果裡面有其他非Unity Ads的檔案,請自行注意是否要留)
Unity 2017.1.2f1:仍必須從Unity Asset Store下載安裝Unity Ads
Unity 2017.3.0f3:不需下載安裝,而且舊的插件包必須刪除。
但是會有另一個嚴重問題!如下。
我的測試裝置:iPhone 6
這真是非常恐怖的S級Bug,還好測試時有檢查到。
文中發生狀況的版本包括2017.3.0f3、2017.3.0f2、2017.1.2p4,
而我將Unity退回到2017.1.2f1版是沒問題的
(仍需從Asset Store安裝Unity Ads Package),
所以就這樣解決了。