Big_Cake

晓雨杂记

也许我们会分别,但我们将永远不会忘记彼此
bilibili
github
twitter
zhihu
telegram
tg_channel

Minecraft Java Editionのクライアントエラーの診断方法

はじめに#

やっと Hexo の YAMLException の問題が修正されました。前回の更新から 5 ヶ月も経ってしまいました!

最近は Hexo の問題が原因で更新できませんでした。

ちなみに、再びオンライン授業に戻りました(こちらではパンデミックが発生しています)

Minecraft Java Edition は、Mojang Bugjump の伝統的な技術により、さまざまな不思議な理由でクラッシュすることがよくあります。この記事では、Minecraft の問題を判断し、修正方法を紹介します。

手順#

正しい Java バージョンを選択する#

まず、正しい Java バージョンを選択してください。

1.17.x では Java 16 が必要であり、1.18 以降では Java 17 が必要です。1.16.5 以下では Java 8 が必要です。

間違った Java を選択すると、どのようにしてもゲームはクラッシュします。

通常、ランチャーは選択したバージョンに基づいて自動的に Java ランタイムを選択します(例:BakaXLや PCL2 など)

ゲームが起動しない場合は、使用しているランチャー(BakaXLなど)によってクラッシュの原因が分析され、パッケージ化されたエラーレポートとログが提供されます。もし手抜きしたい場合は、この圧縮ファイルを QQ グループなどに送信して他の人に尋ねることもできます。(ただし、これはこの記事の目的から外れています)

参考文献:質問の賢い仕方

理想的には、上記の方法でほとんどの問題が解決されるはずです。しかし、「理想は豊かで、現実は骨ばったもの」と言います。問題が起きた場合、ランチャーだけでは原因がわからない場合があります。その場合は、自分で手を動かす必要があります。

Minecraft のディレクトリ構造を理解する#

まず、ゲームの保存フォルダを開いてください。ここでは、ゲームが少なくとも 1 回は実行され、クラッシュしたと仮定しています。

バージョンの分離を有効にしていない場合、このフォルダには少なくとも次のディレクトリ構造が必要です:

フォルダ
|_ .minecraft
|     |_ assets
|     |_ libraries
|     |_ crash-reports
|     |_ logs
|     |_ versions
|     |   |_ ゲームのバージョン
|     |       |_ ゲームのバージョン.jar
|     |       |_ ゲームのバージョン.json
|     |_ launcher_profiles.json       
|_ ランチャー(PCL2.exe、BakaXL.exeなど)

バージョンの分離を有効にしている場合、このフォルダのディレクトリ構造は少なくとも次のようになります:

フォルダ
|_ .minecraft
|     |_ assets
|     |_ libraries
|     |_ versions
|     |   |_ ゲームのバージョン
|     |       |_ crash-reports
|     |       |_ logs
|     |       |_ ゲームのバージョン.jar
|     |       |_ ゲームのバージョン.json
|     |_ launcher_profiles.json
|_ ランチャー(PCL2.exe、BakaXL.exeなど)

次に、上記のディレクトリ構造に従って、crash-reportslogsフォルダを見つけてください。前者はゲームがクラッシュしたときに自動生成されるクラッシュレポートが保存されており、後者はゲームの実行ログが保存されています。

次に、エクスプローラーで「変更日時」ボタンを押すと、最新のログファイル「latest.log」が表示されます。

latest-log

crash-reportsフォルダも同様です。

一旦latest.logには触れずに、最新のcrash-reportファイルを開いてみましょう。開くと、大量のスタックトレースと理解できないエラータイプが表示されます。

ファイル名に「server」という文字が含まれている場合、それは通常、ゲーム内のサーバーに関連するものですので、無視してください。「client」という文字が含まれている場合、通常、クラッシュ後に生成される「crash-report」ファイルです。

crash-report

エラーの特定#

このクラッシュレポートは、Forge と VanillaFix をインストールした後に生成されたものです。ここでは、エラータイプが「Initializing game」であることがわかります。これはゲームの読み込みを意味します。スタックトレースの最初の行には、エラーの原因が「ngtlib」という依存 Mod の「jp.ngt.ngtlib.NGTCore」クラスのロードに失敗したことが示されています。

屏幕截图 2022-04-08 125741.png

このテキストは、エラーの原因が「ClassNotFoundException」、つまり「クラスが見つからない」ということを示しています。下に続く SHA1 値の検証に失敗したという情報と、それに続く人間が読めるエラーメッセージから、この Mod とそれに依存する「RealTrainMod」とのバージョンが一致していないためにクラッシュが発生していることがわかります。

さらにスクロールすると、次のようなレイアウトが表示されます:

屏幕截图 2022-04-08 130559.png

上部には、システム、ゲームのバージョン、Java および JVM のバージョン、JVM パラメータ、メモリなどが記録されています。下部には、使用している Forge、OptiFine(インストールしている場合)のバージョン、および下の L、C、H、I、J、A、D、E の 8 つの文字がそれぞれ何を意味するか、およびインストールされている Mods が表示されます。通常、この表を使用して問題のある Mod を特定することができます。

同様に続けてください。

Minecraft フォルダ内にhs-err-pidxxxxxxxx.mdmpといったファイルが表示される場合、Minecraft に割り当てられたメモリが不足しているか、Java に問題がある可能性があります。

起動時に次のリンクが含まれるウィンドウが表示される場合:https://aka.ms/mcdriver、それはグラフィックドライバに問題が発生していることを示しています(または、実際にはグラフィックカードがない場合です - 通常、借りた Windows サーバーで発生します)。

問題の解決#

問題のある Mod を交換または削除する必要があります。

メモリが不足している場合は、メモリを増やすか、パワーダウンしてリラックスする古いバージョンをプレイすることを検討してください。

グラフィックカードに問題がある場合は、グラフィックドライバを更新するか、新しいコンピュータを購入することを検討してください(?

Java / JVM の問題の場合は、Java を再インストールするか、Minecraft により多くのメモリを割り当ててみてください。なぜなら:

Java eats memories

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。