在 Anbernic RG40XXH(muOS)上玩 Minecraft Java:让 PortMaster 移植版跑起来
PortMaster 有一个 Minecraft Java 移植版(minecraftjava),可以在 Anbernic RG40XXH 这类 muOS 掌机上运行。安装看起来很简单,但在我们的 RG40XXH 上它先是无法启动,然后又卡死,经过好几次修正才能正常游玩。本文把所有要点集中在一起。
**测试环境:**Anbernic RG40XXH(1 GB 内存)· muOS 2601.0 Jacaranda · PortMaster Minecraft 移植版 · Minecraft Java 1.12.2。
首先:移植版只是一个启动器
PortMaster 移植版不包含 Minecraft。它包含启动器菜单、启动脚本、手柄映射,以及 Minecraft 在掌机上运行所需的 ARM 组件。游戏本身(Minecraft Java Edition 的文件)必须来自你自己的正版。
也就是说:
- 你需要拥有 Minecraft: Java Edition(在 minecraft.net 购买,包含在 Java & Bedrock 合集中)。文件来自你电脑上的官方 Minecraft Launcher。
- 移植版以离线方式启动游戏,不登录账户。你会以默认皮肤的本地玩家身份游玩,无法加入正版验证(在线模式)的服务器。局域网或离线模式服务器仍可使用(把地址写入移植版文件夹中的
server.txt)。
只有两个 Minecraft 版本可用
移植版只支持:
| 版本 | 原版 | Forge |
|---|---|---|
| 1.7.10 | ✅(最快) | ✅ |
| 1.12.2 | ✅ | ✅ |
我们的第一个错误是复制了 1.12.1。看起来差不多,但启动器菜单只检查 1.7.10 和 1.12.2,所以菜单里只有 Exit。也不要把其他版本改名为 1.12.2,必须是真正的 1.12.2。
第 1 步:在电脑上准备 1.12.2
- 打开官方 Minecraft Launcher,用拥有 Java Edition 的账户登录。
- 进入 Installations → New installation,选择 release 1.12.2,点击 Create。
- 点击一次 Play,等主菜单出现。这样会下载 1.12.2 需要的库以及声音、材质资源。然后退出。
现在你的 Minecraft 文件夹就完整了:
| 系统 | 文件夹 |
|---|---|
| Windows | %APPDATA%\.minecraft |
| macOS | ~/Library/Application Support/minecraft |
| Linux | ~/.minecraft |
第 2 步:把正确的文件夹复制到正确的位置
最简单的方法:交给脚本。 我们免费的电脑脚本只收集移植版需要的 1.12.2 文件,并把它们复制到卡上,不会替换移植版自带的文件。下载 PortBridge-1.0.0-stock.zip,把 SD 卡 1 插到电脑上,在 PC 文件夹中运行:python3 collect-minecraft.py --to <SD>/ports/minecraftjava(macOS、Linux;<SD> 是卡)或在 PowerShell 中运行 .\collect-minecraft.ps1 -To E:\ports\minecraftjava(Windows;换成你的卡的盘符)。详见原厂系统指南。想手动操作的话,请继续往下看。
这是我们的第二个错误。版本文件不是放在 ports/minecraftjava/versions/。启动脚本从移植版内的隐藏文件夹 .minecraft 加载它们:
SD 卡 1(muOS:/mnt/mmc)
└── ports/minecraftjava/.minecraft/
├── versions/1.12.2/ ← 1.12.2.jar 和 1.12.2.json
├── libraries/ ← 电脑上的 .minecraft/libraries 文件夹(合并)
└── assets/ ← 电脑上的 .minecraft/assets 文件夹(合并)
只复制 .jar 和 .json 是不够的。Minecraft 1.12.2 还需要大约 30 个库和资源文件(声音、语言文件、材质),总共约 200 MB。没有它们就无法启动。
“整个文件夹”是什么意思:在你电脑的 Minecraft 文件夹中(见上表),有一个 libraries 文件夹,里面有许多子文件夹(com、org、net…),装满了 .jar 文件;还有一个 assets 文件夹。把它们连同全部内容复制到 SD 卡上的 ports/minecraftjava/.minecraft/。
要合并,不要替换。移植版已经有自己的
libraries文件夹,里面有让 Minecraft 能在掌机上运行的 ARM 版 LWJGL。电脑询问时,请选择合并(macOS),或者复制到现有文件夹并跳过已存在的文件(Windows)。选择替换会删除移植版的文件,Minecraft 将无法启动。versions和assets也一样。
如果你在电脑上玩过很多 Minecraft 版本,这些文件夹可能很大,因为里面有所有版本的文件。这没关系:掌机只会用到 1.12.2 需要的部分。
可以用读卡器复制,也可以通过 Wi-Fi 使用 muOS 的 SFTP 服务器(在 SFTP 应用中路径显示为 /SD1 (mmc)/ports/minecraftjava/.minecraft/)。移植版保留自己的 ARM 版 LWJGL,所以复制电脑上的 libraries 文件夹不会破坏任何东西。
如果电脑上 .minecraft 是隐藏的:在 macOS 的访达中按 ⌘ Shift .;在 Windows 中打开 查看 → 隐藏的项目。
第 3 步:启动
在掌机上打开 Ports → Minecraft Launcher。菜单现在应该显示 Vanilla v1.12.2。
如果仍然只显示 Exit,请查看 ports/minecraftjava/Launcherlog.txt。类似
versions/1.12.1/1.12.1.json: line 1: {assetIndex:: command not found 的错误说明启动脚本 ROMS/Ports/Minecraft Launcher.sh 被手动修改过。从 PortMaster 重新安装移植版即可恢复原始脚本。
**不要在 ROMS/Ports 里留下备份。**我们曾把旧脚本保存为 Minecraft Launcher.sh.bak 放在那里,muOS 把它显示成了第二个名为“Minecraft Launcher.sh”的游戏。启动它又运行了那个坏掉的旧脚本。请把备份放在别处。
解决:卡顿、冻结或死机
这是最常见的问题,而且几乎总是设置问题,不是安装坏了。
表现
- 一开始玩得好好的,然后越来越慢,几分钟后像是卡死了。
- 按键反应延迟好几秒。
- 整台掌机失去响应,连 SFTP 服务器也不动了,直到重启。
我们的 ports/minecraftjava/log.txt 显示 Can't keep up! Did the system time change, or is the server overloaded? Running 2227ms behind, skipping 44 tick(s),游戏从每秒 30 帧降到每 8–12 秒一帧。这不是崩溃,只是负载过重。
原因
RG40XXH 只有 1 GB 内存和手机级别的芯片。移植版只给 Java 384 MB。如果你从电脑复制了设置,Minecraft 会尝试以 12 区块的渲染距离、高品质图像和平滑光照来加载。掌机跟不上,内存耗尽,Java 把大部分时间花在清理内存上,而不是运行游戏。
能解决问题的设置
在 Options → Video Settings 中修改,或者(关闭游戏后)编辑 ports/minecraftjava/.minecraft/options.txt:
| 设置(游戏内) | options.txt |
设为 | 原因 |
|---|---|---|---|
| Render Distance | renderDistance |
4(之后可试 5–6) | 对速度和内存的影响远超其他设置 |
| Graphics | fancyGraphics |
false(Fast) | 树叶、水和阴影更简单 |
| Smooth Lighting | ao |
0(Off) | 每个方块都省 CPU |
| Clouds | renderClouds |
false | 少画一些 |
| Mipmap Levels | mipmapLevels |
0 | 材质占用更少内存 |
| Max Framerate | maxFps |
30 | 稳定 30 帧,不追求更高 |
| VSync | enableVsync |
false | 避免帧间额外等待 |
| Particles | particles |
2(Minimal) | 战斗和下雨时特效更少 |
| Entity Shadows | entityShadows |
false | 少画一些 |
在 options.txt 中,这些行如下:
renderDistance:4
fancyGraphics:false
ao:0
renderClouds:false
mipmapLevels:0
maxFps:30
enableVsync:false
particles:2
entityShadows:false
改完后,我们的 RG40XXH 运行流畅。
如果仍然卡顿
逐一尝试:
- 在大而繁忙的世界里,把渲染距离降到 3,甚至 2。
- 开一个新世界,或者在出生点附近玩。加载了大量区块、农场或很多动物的巨大世界会占用更多内存。
- **长时间游玩后重启游戏。**内存会随着时间累积。
- **换成 1.7.10。**这是移植版支持的最轻量版本,移植版自己的说明也推荐用它来获得最佳性能。
- **进阶:给 Java 更多内存。**上限设置在
ports/minecraftjava/1.12.2.start中(1 GB 设备上会选XMX=384M)。提高到448M可以减少卡顿,但 muOS、显示层和游戏共用同一个 1 GB。设得更高,系统可能会直接结束游戏。只有在上面的步骤都不够时才修改,并把原文件的副本放在ROMS/Ports之外。
现在就卡死了?
按 R2 + SELECT + B(muOS 强制退出)。如果毫无反应,按住 POWER 约 10 秒。你的世界会保留,但上次自动保存之后的进度会丢失。再次游玩前先降低设置。
无害:log.txt 里满是 GL ERROR 1282 @ Post render。这来自移植版的图形兼容层,不是变慢的原因。
操作
| 按键 | 动作 |
|---|---|
| 左摇杆 | 移动 |
| 右摇杆 | 环顾四周,在菜单中是鼠标指针 |
| A | 跳跃 |
| B | 丢弃物品 |
| X / Y | 物品栏 |
| R2 | 破坏 / 攻击(鼠标左键) |
| L2 | 放置 / 使用(鼠标右键) |
| L1 / R1 | 快捷栏 |
| L3 / R3 | 疾跑 / 潜行 |
| START | 暂停菜单 |
游戏不让你退出时:R2 + SELECT + B 是 muOS 的强制退出。先暂停,让世界得以保存。
总结
- 拥有 Minecraft Java Edition,并用官方启动器安装一次 1.12.2(或 1.7.10)。
- 把
versions/1.12.2、libraries和assets复制到ports/minecraftjava/.minecraft/。 - 保持
ROMS/Ports干净,不要放.bak脚本。 - 使用较低的视频设置(渲染距离 4、快速图像、30 FPS)。仍然卡顿的话,参见上面的排查步骤。
有问题?请发邮件至 feedback@pocketkode.com。
Minecraft 是 Mojang Synergies AB 的商标。PocketKode 与 Mojang、Microsoft、PortMaster、muOS 和 Anbernic 均无关联。