闪退崩溃排查——游戏自动退出或报崩溃
闪退的两种形态
形态一:游戏界面突然消失,直接回到手机桌面
这是 Java 进程被 Android 杀死,原因通常是 RAM 不够或温度过高。
形态二:弹出崩溃提示框 / 崩溃日志文件
这是游戏自身崩溃,原因通常是模组冲突、渲染器问题、版本损坏等。
第一步:查崩溃日志
PojavLauncher 的崩溃日志路径:
.minecraft/pojav_configs/<当前配置档>/crash-reports/
文件名格式:crash-YYYY-MM-DD_HH.MM.SS-<版本>.txt
用文件管理器打开它,找文件末尾的关键行:
| 日志里的关键词 | 说明的问题 |
|---|---|
OutOfMemoryError / Java heap space | RAM 不够,给游戏分配的内存太少 |
SIGSEGV / Access violation / Segmentation fault | 渲染器崩溃或原生代码 bug |
ClassNotFoundException / NoClassDefFoundError | 模组依赖缺失(比如缺 Fabric API) |
Mixin conflict / Duplicate mixin | 两个模组改了同一块代码,冲突 |
Renderer initialization failed | 渲染器初始化失败(GPU 不支持) |
modloader mismatch / Incompatible mod | 模组的加载器类型不匹配(Forge 模组用 Fabric 加载) |
version mismatch / Unsupported version | 模组要求的 Minecraft 版本不匹配 |
最常见的闪退原因和修复
1. RAM 不够(OutOfMemoryError)
日志特征:java.lang.OutOfMemoryError: Java heap space
修复:
- 启动器设置 → Java → 把 RAM 分配滑块往上调(参考 RAM 分配那页的推荐值)
- 进游戏 → 视频设置 → 渲染距离 降到 5 或更低
- Fabric 路线装 FerriteCore(省内存模组)
- 关掉其他占用内存的后台 App
2. 模组冲突
日志特征:Mixin conflict、Duplicate mixin、Mod loading failed
修复(二分法):
- 备份 mods/ 目录里的所有 jar
- 先只保留加载器核心模组(Fabric Loader + Fabric API + Sodium)→ 启动测试
- 每次加 2~3 个模组 → 启动测试
- 一旦加了某批后崩溃 → 从这批里二分 → 找到具体哪个模组
- 删掉冲突模组或找它的兼容版本
3. 渲染器崩溃
日志特征:SIGSEGV、glXCreateContext、Renderer failed
修复:
- 启动器设置 → 换渲染器
- 完全退出 PojavLauncher → 重开 → 启动游戏
- 仍然崩溃?试试其他渲染器(Zink ↔ GL4ES ↔ ANGLE)
4. 版本文件损坏
日志特征:FileNotFoundException、jar not found、corrupt
修复:
- PojavLauncher 设置 → 文件管理 → 进入
.minecraft/versions/ - 删除损坏版本对应的整个目录
- 启动器版本列表里该版本会变成红色或标记"损坏"
- 点击重新下载
5. Shader 包导致
日志特征:崩溃在 shader、glsl、program 相关的类名
修复:
- 进游戏(临时换纯净配置档进 → 主菜单后切回要修的配置档)
- 视频设置 → Shader Packs → 设为 OFF
- 把
.minecraft/shaderpacks/里的 Shader 包暂时移走 - 重进游戏 → 如果正常 → 这个 Shader 包本身有问题或和 Iris/OptiFine 版本不兼容
闪退了但没日志?
如果 Java 进程被 Android 强制杀掉(不是正常崩),可能没有崩溃日志。这种情况:
- 看 Android 系统日志(需要开发者选项 + adb logcat,比较高级)
- 最直接的办法:关掉所有后台 App、降低 RAM 分配、不要让手机过热