本隨筆主要記錄Launch的問題解決。
UE4打包遇到的問題層出不窮,有些比較急的時候,只能用Launch來將就一下。
但Launch也會遇到各種問題,這里解決一個記錄一個。
1. Launch failed! Missing UE4Game binary.
具體問題如圖:

缺失UE4二進制,如下圖Launch一下就好了。


如果Launch失敗了,則需要處理一下具體問題了。
用命令行執行Launch可以具體知道哪里出現了問題(雖然可能會誤報就是了。如果出現誤報(如VS哪里出現了問題了),把這個提示的錯誤臨時解決了,然后再進行Launch,重復此操作,直到把真正的錯誤解決了,再把誤報的修改復原。)
參考文章:https://wiki.unrealengine.com/How_to_package_your_game_with_commands
首先要找到UE4本體所在位置,這個很簡單,自行查找。
然后找到RunUAT,在此位置(以我的UE4安裝在D盤為例子):D:\Program Files\Epic Games\UE_4.18\Engine\Build\BatchFiles
長這個樣子:

然后,找到我們准備Launch的項目(例子:E:\TestPackage\TestPackage.uproject);
然后,准備一個文件夾來放置Launch成功后的內容(例子:E:\Output)
最后,調出命令行,執行命令:D:\Program Files\Epic Games\UE_4.18\RunUAT BuildCookRun -project="E:\TestPackage\TestPackage.uproject" -noP4 -platform=Win64 -clientconfig=Development -serverconfig=Development -cook -allmaps -build -stage -pak -archive -archivedirectory="E:\Output"

回車,執行命令。
如果成功了,去對應的文件夾找該內容;
如果失敗了,按照對應的提示去所在目錄找Log文件:
例子:

然后在log里查找error就可以找到具體的問題點。
2. 在未指定異常處理模式的情況下使用了“noexcept”;不一定會在異常時終止。
如圖:

這個是VS的問題,官方給的解答是去設置 /ehsc編譯器選項。(但我找不到設置的方法=_=)。
官方解答地址:https://docs.microsoft.com/zh-cn/cpp/error-messages/compiler-warnings/compiler-warning-level-1-c4577?view=vs-2019
另一種解決方法是,在項目里強制跳過異常,做法是在項目的Target.cs文件下,添加代碼:

編譯即可。
