跳至主要内容

遊戲崩潰了怎麼辦

崩潰視窗本身通常看不出原因。GPCL 會先讀一遍日誌給出線索,再按下面的順序排查。

先做一件事

點崩潰對話框上的「匯出錯誤報告」,把產生的 zip 儲存下來。報告開頭就是 GPCL 的分析結果,後面還有 Mod 列表、Java、啟動參數和所有日誌,排查基本都靠它。

1. 先看 GPCL 的分析​

對話框會顯示 GPCL 從日誌裡找到的 1-2 條線索,比如「記憶體不足」「Mod 依賴或相容性檢查沒通過」。點「查看詳情」能看到全部線索、對應的日誌原文和崩潰資訊。

這些結論是照著關鍵字匹配出來的,只能當作排查方向。日誌裡有更具體的資訊時(比如缺少哪個前置),會一併列在證據裡。

2. 匯出錯誤報告​

崩潰對話框上就有這個按鈕。選一個位置儲存,GPCL 會打包成:

  • error-report.txt:分析結果、錯誤摘要、系統 / 顯示卡 / Java、Mod 列表、資源包與光影、啟動參數、遊戲輸出、日誌裡的錯誤行;
  • crash-reports/:這次崩潰產生的崩潰報告;
  • logs/:latest.log 和 debug.log(過大時只保留末尾部分);
  • jvm-crash/:JVM 自己寫出的 hs_err_pid*.log(如果顯示卡驅動程式之類的問題導致 JVM 崩潰);
  • launcher-log.txt:啟動器日誌;
  • game-output.txt:遊戲處理程序這次執行的標準輸出和錯誤輸出。

報告裡的 --accessToken 和系統使用者名稱已經打碼,可以直接寄出去。不要只寄崩潰視窗的截圖。

3. 自己先看日誌​

對話框上的「查看日誌」會開啟遊戲處理程序的輸出。重點看最底部,以及搜這幾個詞:

關鍵字通常意味著
Exception、Caused by真正的例外通常在第一個 Caused by 後面
OutOfMemoryError分配的記憶體不夠
UnsupportedClassVersionErrorJava 版本和遊戲版本對不上
NoSuchMethodError、ClassNotFoundException模組與遊戲版本、載入器版本不匹配,或缺前置
GLFW error顯示卡驅動程式或 OpenGL 支援有問題

4. 常見原因​

現象常見原因怎麼處理
一啟動就退出,日誌裡有 UnsupportedClassVersionErrorJava 版本不對讓 GPCL 自動補 Java;或在設定裡換鏡像來源後重新安裝
載入到一半卡死或閃退,日誌裡有 OutOfMemoryError記憶體不夠,或模組太多設定 → 遊戲 → 記憶體分配裡調大;不要超過實體記憶體
載入模組時崩,日誌裡出現模組名模組版本不對、缺前置、兩個模組衝突先只裝這個模組試;確認它支援的 MC 版本和載入器版本
視窗還沒出來就退出,有 GLFW error顯示卡驅動程式過舊,或 OpenGL 不支援更新顯示卡驅動程式;筆電確認遊戲用的是獨立顯示卡
進伺服器被踢,提示 Invalid session正版登入過期,或帳號沒有這個版本的授權重新登入正版;確認帳號確實擁有該版本
進世界或載入資源包時崩存檔、資源包或光影包損壞先新建一個世界試;把存檔備份出來再處理
用 Fabric 啟動就崩,提示缺 fabric-api沒裝 Fabric API重新裝 Fabric 時勾上「同時安裝 Fabric API」,或手動補裝

5. 先排除這三件事​

  1. 關掉所有模組、資源包和光影,裸啟動一次。能進就是模組那邊的問題。
  2. 換一個原版版本啟動。能進就是目前版本或它的模組組合有問題。
  3. 新建一個世界。能進就是原本的存檔壞了。

6. 還是不行​

寄信到 gamets@caellab.com,附上匯出的錯誤報告,再寫清楚:

  • 啟動器版本、Minecraft 版本、載入器版本;
  • 裝了哪些模組(有版本號更好);
  • 崩潰前做了什麼。

只描述「一啟動就崩」很難定位,報告裡的日誌才是關鍵。