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」という文字が含まれている場合、それは通常、ゲーム内のサーバーに関連していますので、無視して構いません。通常、クラッシュ後に生成されるcrash-reportファイルには「client」という文字が含まれています。

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

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