教你如何处理客户端崩溃(基础情况)
基础知识
Minecraft 客户端,是 Minecraft 游戏本身一大组成部分。通俗来说,玩家游玩的 Minecraft 游戏本身就是客户端。
客户端需要使用 启动器 启动。有关启动器,可以参考 基础知识(主页查看另外文章)。
TIP
如果您对 Minecraft 有较详细的理解,那么您不必完整阅读。
游戏文件 & 日志
游戏的文件目录一般如下所示。
.minecraft
├─assets
│ ├─indexes
│ ├─objects
│ │ ├─00
│ │ ├─01
│ │ ├─...
│ │ ├─fe
│ │ └─ff
│ ├─skins
│ │ ├─00
│ │ ├─01
│ │ ├─...
│ │ ├─fe
│ │ └─ff
│ └─virtual
│ └─legacy
│ ├─...
├─libraries
│ ├─...
└─versions
├─[版本名]
│ ├─[版本名]-natives
│ ├─crash-reports
│ ├─logs
│ ├─mods
│ ├─resourcepacks
│ ├─saves
│ │ └─[存档名]
│ │ ├─advancements
│ │ ├─data
│ │ ├─datapacks
│ │ ├─DIM-1
│ │ │ └─data
│ │ ├─DIM1
│ │ │ └─data
│ │ ├─entities
│ │ ├─playerdata
│ │ ├─poi
│ │ ├─region
│ │ ├─serverconfig
│ │ └─stats
│ └─screenshots
这其中,我们要寻找的日志如下。部分启动器也支持导出错误报告,此时可以在错误报告中直接寻找。
关闭版本隔离:.minecraft\crash-reports\crash-.txt
开启版本隔离:.minecraft\versions\\crash-reports\crash-.txt
系统问题
Minecraft 客户端可以在多款系统上运行,自然也避免不了因为适配系统带来的问题。因此,此处提供部分常见问题及解决方案。
通用问题
这些问题在各种系统中都会出现,因此放在最前面。
OpenGL 错误 (聊天栏中出现)
错误码 可能原因 解决方案
1280 OptiFine / Mods 冲突 / OpenGL 版本错误 更换 OptiFine 版本、检查 Mods 冲突或尝试更新显卡驱动
1281 Mods / 图像设置 / 显卡驱动 / 光影 尝试更新显卡驱动或检查 Mods 问题(如检查后无问题,则暂时无解)
1282 显卡驱动 / Mods 冲突 / 着色器出错 更换游戏版本,更换 OptiFine 版本,检查 Mods 问题,检查材质包和光影包,或更换显卡驱动
1283 Mods 更换光影或检查 Mods 问题
1284 显卡驱动 / Mods 冲突 / 着色器出错 更换光影或检查 Mods 问题
1285 配置文件冲突 / 内存不足 / Mods 冲突 给游戏分配更多的内存或尝试重新安装游戏
1286 内存溢出 / 显卡驱动 给游戏分配更多的内存或尝试更新显卡驱动
显卡 / 显卡驱动问题
解释:因为你的显卡配置或显卡驱动存在问题,游戏无法正常运行。
解决方案:检查显卡驱动是否为最新;如果有独立显卡的请使用独立显卡运行游戏,而非核显。
关键词:
// 显卡驱动问题
Incorrect key [earlyWindowSkipGLVersions] was corrected from null to []
Incorrect key [earlyWindowSquir] was corrected from null to false
// 显卡驱动 / 显卡配置问题
Couldn't set pixel format
Pixel format not accelerated
The driver does not appear to support
内存问题
解释:由于内存不足,游戏无法继续运行。
解决方案:检查游戏分配的内存大小;尽可能关闭系统内运行的其他程序,然后再次启动游戏。
内存清理 BakaXL :前往 本体设置 -> Java 虚拟机与内存,确保 自动设置内存 设置为开,然后展开 内存高级设置,点击 强制释放内存 (可多次点击),然后再次启动游戏。
内存优化 PCL2 :前往 设置 -> 游戏 -> 游戏内存,确保内存配置选项为 自动配置。然后前往 更多 - 百宝箱,点击 内存优化,然后按照提示给予启动器管理员权限,等待内存优化完成后再次启动游戏。
关键词:
java.lang.OutOfMemoryError
Could not reserve enough space
页面文件问题
解释:由于页面文件太小,游戏无法继续运行。
解决方案:检查页面文件大小
在 Windows 系统中,右键 此电脑 -> 属性 -> 高级系统设置 -> 性能设置 -> 高级 -> 更改虚拟内存 -> 勾选 自动管理所有驱动器分页文件大小
关键词 (仅供参考):
页面文件太小,无法完成操作。
Java 问题
请在排查错误之前先打开启动器的自动决定 Java 功能,然后再尝试启动游戏复现问题。在通常情况下,你不应该关闭这个功能。
以下为几个常见的因为 Java 的非版本问题导致的错误。
使用 OpenJ9
解释:游戏因为使用 OpenJ9 而崩溃了。
解决方案:卸载当前 Java,然后前往其他地方获取一个非 OpenJ9 的 Java。
关键词:
Open J9 is not supported
OpenJ9 is incompatible
.J9VMInternals.
使用了 32 位 Java 且分配内存过大
解释:由于使用了 32 位 Java 且分配了 1G 以上内存,导致游戏无法正常启动。
解决方案:
注意
此方法仅适用于 64 位系统。
1。卸载当前 Java,然后去其他地方重新获取 64 位的 Java。
注意
不推荐使用此方法,可能会导致游戏卡顿,但 32 位系统只能这么做。
2。在启动器的内存设置中调整游戏内存分配至小于等于 1G (1G = 1024M)。
注意
需要一定技术基础,适用于 32 位系统,但为 64 位处理器。
3。自行重装系统为 64 位。你可以使用微软官方提供的重装工具,抑或是使用 EasyRC 一键重装 等无捆绑一键重装工具。
关键词:
Could not reserve enough space for 1048576KB object heap
Windows 问题
UTF-8 编码问题
解决方案:
检查游戏路径中是否包含中文,如果有,删除掉即可。
在 系统-区域设置-使用UTF-8提供全球语言支持。如果选项没有启用,那么启用并重启电脑;如果已经启用,那么关闭并重启电脑。
关键词:
java.lang.ClassNotFoundException: net.fabricmc.loader.impl.launch.knot.KnotClient
1
macOS 问题
在游戏版本为 1.20.x 中游戏路径包含非 ASCII 字符
[LWJGL] Failed to load a library. Possible solutions:
a) Add the directory that contains the shared library to -Djava.library.path or -Dorg.lwjgl.librarypath.
b) Add the JAR that contains the shared library to the classpath.
1
2
3
解决方案:将游戏路径中的非 ASCII 字符去掉
macOS 下存在 .DS_Store 文件导致报错
Caused by: net.minecraft.util.ResourceLocationException: Non [a-z0-9_.-] character in namespace of location: .DS_Store:
net.minecraft.util.ResourceLocationException: Non [a-z0-9_.-] character in namespace of location: .DS_Store:
1
2
解决方案:删除 .DS_Store 文件
由于 .DS_Store 文件是 macOS 的隐藏文件,只能通过执行指令进行删除
进入搜索栏,搜索 终端 或 Terminal,并打开该软件
(可选) 使用 cd <游戏路径> 指令进入游戏目录
注 1:官启的 <游戏路径> 为 "~/Library/Application Support/minecraft/"
注 2:其他第三方启动器的 <游戏路径> 一般是与启动器文件同级的 .minecraft 文件夹
注 3:.DS_Store 用于保存文件移动记录 (可见并不是非常重要)。但若不在游戏目录下执行本操作,将无法撤回任何文件移动操作,并且 find 指令耗时也会很长
执行如下指令:
sh
rm $(find . -name .DS_Store 2>/dev/null)
不兼容 macOS 的 Mod
Exception caught during firing event: Unable to load library 'imm32':
class io.github.reserveword.imblocker.IMBlocker$RegistryEvents
1
2
解决方案:删除 IMBlocker 模组 (此模组仅适用于 Windows)
macOS 下初始化 OpenGL 窗口问题
java.lang.IllegalStateException: GLFW error before init: [0x10008]Cocoa: Failed to find service port for display
1
解决方案实验性:先开一个浏览器全屏,然后启动游戏,在还没弹出窗口的时候迅速切回浏览器,等差不多游戏窗口出来了之后再切回去。
Linux 问题
不兼容 Linux 的 Mod
Exception caught during firing event: Unable to load library 'imm32':
class io.github.reserveword.imblocker.IMBlocker$RegistryEvents
1
2
解决方案:删除 IMBlocker 模组 (此模组仅适用于 Windows)
在游戏版本为 1.20.x 中游戏路径包含非 ASCII 字符
原版问题
Minecraft 原版游戏中本身也存在许多问题,这里列出部分常见问题及解决方案。
该板块内容也适用于安装了 Mod 加载器或 Mod 的游戏实例。
以下的原版游戏皆指未安装 OptiFine 或者 Mod 加载器等修改原版核心工具的 Minecraft 游戏实例。
在处理原版崩溃之前,需要注意的是,Mojang 几乎没有可能写一个 100% 会爆炸的东西出来然后推送到正式版。因此 99.99% 的原版崩溃问题都来自外界。
首先请确保已经打开了启动器的自动决定 Java 功能,否则可能会因为使用的 Java 版本错误而导致启动失败。
如果你是在安装一个新的 MC 版本之后发生了崩溃,那么请确保你的网络连接良好,然后前往启动器内使用补全文件功能。
如果你在启动游戏时弹出了含有 OpenGL 字样的英文弹窗,请前往你使用的显卡官网下载对应你显卡的最新驱动并安装。如果你使用的是 3 代及以前的 Intel 核显,则理论上无法游玩任何需要 Java 17 的版本。你也可以尝试使用软渲染器仅 HMCL(在 游戏特定设置 -> 高级设置 -> 渲染器 里修改),但这可能会严重降低游戏性能。
如果你正在游玩 1.16.5 或以下版本,请下载 Java 8u51 并安装,然后使用该 Java 启动游戏。
存档损坏
关键词
Exception reading \level.dat
Caused by: java.util.zip.ZipException: invalid distance too far back
net.minecraft.util.crash.CrashException: Loading NBT data
1
2
3
解决方案:
尝试打开存档目录,然后删除 level.dat,并将 level.dat_old 重命名为 level.dat。
对于专业玩家,您也可以使用 NBT 编辑器。
资源包过大
解释:由于资源包过大,或是你的显卡配置不足,导致游戏不能正常运行。
解决方案:使用更低分辨率的资源包,或者换个更好的显卡?
关键词:
Maybe try a lower resolution resourcepack?
1
文件校验失败
解释:由于部分游戏文件或资源校验失败,游戏无法正常启动。
解决方案:使用启动器补全文件,抑或是重新下载游戏。
关键词:
signer information does not match signer information of other classes in the same package
1
游戏库文件缺失 / 损坏
解释:在移动游戏版本文件时,贪图方便只转移versions文件夹下的版本文件,游戏库文件未一并转移,导致报错。
关键词:
Caused by: java.io.IOException: Invalid paths argument, contained no existing paths: C:\XXXX\···\.minecraft\libraries\net\minecraft\client\···
1
解决方案:请逐个尝试以下方案。
在启动器中,开启版本隔离的条件下,同样安装一个被迁移的游戏版本(该游戏版本需与报错时的游戏版本完全一致,包括模组加载器的版本)。
一同将原来游戏目录中的libraries文件夹复制到新的.minecraft文件下。
显存 / 内存问题
解释:显存溢出,或者内存分配过多导致问题。
解决方案:请逐个尝试以下方案。
在桌面右键 此电脑,依次点击 属性 -- 高级系统设置,按下图顺序改成 自动管理所有驱动器分页文件大小,改完后点三个 确定 (不要点右上角的叉),然后重启计算机。
显存溢出解决方案
将内存分配量手动调低,再次尝试启动游戏。
关闭光影。
关键词:
message='GL_OUT_OF_MEMORY error generated. Failed to allocate memory for buffer data.'
1
防火墙 / 防病毒安全软件 / 网络环境问题
关键词:
java.lang.IllegalStateException: failed to create a child event loop
1
解决方案:请逐个尝试以下方案。
如您安装了 Avast,尝试重新安装并重启 Avast。
如您安装了 McAfee (及其衍生产品) 或 Outpost Security,尝试卸载该软件并再次重新启动游戏。
如您没有防病毒安全软件,尝试在 Microsoft Defender 中的 “防火墙和网络保护” 中关闭 “专用网络保护”。
关闭您的加速器或 VPN。
前往 Bellsoft 官网下载最新版 Java,并将该 Java 设置为游戏 Java。
更新显卡驱动程序。
如您正在使用 NVIDIA,请在 NVIDIA 控制面板的 “管理 3D 设置” 中对 Minecraft 恢复默认设置。
对于 Windows 操作系统,使用 Win+S 打开搜索框,搜索 “cmd”,点击搜索结果中右侧 “以管理员身份运行” 选项以使用管理员身份打开 cmd.exe,依次输入以下命令后重启计算机:
警告
以下命令将重置您的 WINSOCK、IPv4、IPv6 网络。
bat
netsh winsock reset
netsh winsock reset catalog
netsh int ipv4 reset reset.log
netsh int ipv6 reset reset.log
1
2
3
4
如以上方案仍无法解决崩溃问题,请尝试以下的临时解决方案:
警告
请注意,以下解决方案均是临时的,无法彻底解决崩溃问题,多次使用后可能导致存档加载困难甚至进一步导致存档损坏,请结合自身情况适当进行采用。
方法一:
关闭所有游戏实例。
打开版本所在的 Minecraft 游戏文件夹,删除以下名称的文件夹 (如未找到则无需操作):assets、bin、libraries、versions、webcache、config、defaultconfigs、usercache.json、usernamecache.json。
重新下载并安装 Minecraft。
关闭所有 Minecraft 启动器。
重新启动游戏。
通常,在进行上述操作后,游戏会成功启动一至两次,而后问题会再次出现。
方法二:
警告
请注意,重复此办法打开存档数次后,存档将愈加难以成功进入。
进入游戏后,重复尝试进入存档,通常会有很大概率在第二次成功打开存档。
[LWJGL] Failed to load a library. Possible solutions:
a) Add the directory that contains the shared library to -Djava.library.path or -Dorg.lwjgl.librarypath.
b) Add the JAR that contains the shared library to the classpath.
1
2
3
解决方案:将游戏路径中的非 ASCII 字符去掉
评论 (0)