本教學將幫助您取得由Minecraft生成的崩潰報吿。崩潰報吿可以幫助開發人員確認和診斷問題,並應儘可能包含在錯誤追蹤器上的報吿中。
取得崩潰報吿日誌檔案
首先,你需要找到啟動器所使用的遊戲目錄。
- 如果你使用的是官方啟動器:
- 在Windows,它預設位於
%appdata%\.minecraft\; - 在MacOS,它預設位於
~/Library/Application Support/minecraft; - 在Linux它預設位於
~/.minecraft。
- 在Windows,它預設位於
- 如果你使用的是第三方啟動器,其通常都會擁有一個遊戲目錄的路徑設定。大多數啟動器都會將預設遊戲檔案路徑設定為其所在的資料夾的
.minecraft子資料夾中,或是直接使用上方的官方啟動器路徑。由於這因啟動器的不同而異,詳細資訊請查看啟動器的設定和說明頁面。
如果你已經成功定位了遊戲目錄,只需要打開它的crash-reports子資料夾,即可看到所有的崩潰報吿。
- 如果你沒看到的話,這説明你可能使用了版本隔離——一種特殊的檔案目錄管理設定,使各個版本使用獨立的數據。這種情況下只需要打開
versions資料夾,找到你崩潰時所遊玩的版本所對應的資料夾,崩潰報吿就在它的crash-reports子目錄中。
- 如果以上兩個位置都沒能找到崩潰報吿,或是
crash-reports資料夾不存在,這説明遊戲可能是因為Java虛擬機故障導致的崩潰。此時遊戲目錄中應當含有一個或多個hs_err_pid#####.log檔案。它就是你要找的崩潰報吿了。
- 如果以上兩個位置都沒能找到崩潰報吿,或是
- 崩潰報吿的檔案名遵循此格式:
crash-yyyy-mm-dd_hh.mm.ss-(client/server).txt。你需要根據崩潰報吿生成的時間來判斷哪個報吿是你所需要的。
對報吿進行反混淆
自19w36a開始,所有公開發布的遊戲版本都會附帶混淆映射表。你可以利用它來對報吿進行反混淆,使Mojang能更容易地找到錯誤的所在和錯誤發生的原因。
Retrace是一款解析混淆映射表並進行反混淆的工具。[1]為了執行Retrace,你需要安裝Java 8或更高版本的Java。
例如,對於Retrace 6.3.0 beta 1版本,這些是此軟件所需要的檔案(Retrace本身及其使用的庫):
- https://repo1.maven.org/maven2/net/sf/proguard/proguard-retrace/6.3.0beta1/proguard-retrace-6.3.0beta1.jar
- https://repo1.maven.org/maven2/net/sf/proguard/proguard-base/6.3.0beta1/proguard-base-6.3.0beta1.jar
- https://repo1.maven.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.3.31/kotlin-stdlib-1.3.31.jar
- https://repo1.maven.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0.jar
- https://repo1.maven.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.31/kotlin-stdlib-common-1.3.31.jar
- https://repo1.maven.org/maven2/org/jetbrains/kotlinx/kotlinx-metadata-jvm/0.1.0/kotlinx-metadata-jvm-0.1.0.jar
下載這些檔案,並將它們放進同一個目錄下。
下載對應版本的用戶端混淆映射表(用戶端的混淆映射表包含了伺服器端混淆映射表的所有內容),且不要對它重新命名(使其保持client.txt檔案名)。將其與上面的東西放在同一個目錄下。
將你的崩潰報吿也複製進上面的目錄中。同時也可以將它重新命名成一個更易辯識的檔案名,例如crash.txt,這樣將會使你在執行後續的步驟時變得更加方便快捷。
打開你的命令列工具,例如Windows中的命令提示字元、PowerShell,MacOS的終端,Linux的Bash等等。首先你需要在命令列中將路徑切換為以上東西所在的目錄:
cd (路径)
對於Windows用户,你可以直接在資料夾中按住Shift並右擊空白處,再選擇「在此處打開PowerShell窗口」。之後執行以下命令:
java -jar proguard-retrace-6.3.0beta1.jar client.txt crash.txt > output.txt
當你的崩潰日誌的檔案名稱不一樣時,請將crash.txt重新命名為崩潰日誌的檔案名。
之後,報吿便會在反混淆後輸出為output.txt,後即可將其上載到錯誤追蹤器。
引用
- ↑ ProGuard manual | Retrace — Guardsquare。
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 版本 | |||||||
|---|---|---|---|---|---|---|---|
| 開發週期 |
| ||||||
| 技術 |
| ||||||
| 多人遊戲 | |||||||
| 遊戲訂製 | |||||||