ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

Arnis 排查避坑手册:从装不上、数据错到生成慢,五层定位一次修好

Arnis 排查避坑手册:从装不上、数据错到生成慢,五层定位一次修好 Arnis 排查避坑手册从装不上、数据错到生成慢五层定位一次修好【免费下载链接】arnisGenerate any location from the real world in Minecraft with a high level of detail.项目地址: https://gitcode.com/GitHub_Trending/ar/arnisArnis 用 OpenStreetMap 与高程数据把真实地点生成到 MinecraftJava 1.17 / Bedrock / Luanti里。本文按「定位 → 跑起来 → 喂数据 → 出结果 → 跑得更快」五层覆盖 Arnis 排查与安装过程中的高频报错每张场景卡都给出判断、处理、验证三步照着做即可。 第 1 层先花 30 秒定位问题在哪一层Arnis 的故障基本落在五个位置按「它卡在哪一步」归类现象所属层去哪看编译报错、窗口打不开、界面空白安装层第 2 层bbox 解析失败、地形全是平地、没有建筑数据层第 3 层卡在某一步不动、中途崩溃生成层第 3、5 层游戏读不了世界、提示世界被占用输出层第 4 层时间过长、内存爆掉性能层第 5 层快速自查命令先用最小区域跑通全流程再谈其他问题cargo run --release --no-default-features -- --output-dir~/test_arnis --bbox48.137,11.575,48.142,11.585这条命令能跑通说明安装层、数据层没问题跑不通报错文本会直接把你指到下面对应的层。 第 2 层跑起来——依赖与启动2.1 编译失败找不到 cc 链接器或依赖拉不下来判断执行cargo run时出现linker cc not found、cc1plus: error或 Cargo 在下载依赖阶段中断。处理安装系统 C 工具链Ubuntu/Debiansudo apt install build-essential libssl-dev pkg-configFedora/RHELsudo dnf install gcc openssl-devel pkgconfig清掉半成品缓存重新构建cargo clean cargo build --release --no-default-features依赖拉取失败时检查代理再执行cargo update后重试。验证target/release/arnis生成且./target/release/arnis --help能打印出--bbox、--output-dir等参数列表。2.2 GUI 界面空白或启动即退Linux判断程序能启动、窗口弹出但地图区域一片空白终端有 WebKit2GTK / graphics 相关报错。处理关闭硬件渲染走软渲染在当前 shell 执行export WEBKIT_DISABLE_DMABUF_RENDERER1 export LIBGL_ALWAYS_SOFTWARE1 cargo run --release若仍空白改用纯命令行模式排除 GUI 因素cargo run --release --no-default-features -- --output-dir... --bbox...参数见 src/args.rs。界面文件缺失或损坏时核对 src/gui/ 目录中index.html与css/样式是否完整缺失则重新拉取源码git clone https://gitcode.com/GitHub_Trending/ar/arnis。验证窗口内能看到地图底图、矩形选框工具和「Start Generation」按钮界面如官方截图一致 第 3 层喂数据——坐标、数据源与地形3.1 bbox 解析失败或坐标超出范围判断报错为Invalid LLBBox、Latitude ... not in range -90.0..90.0、Longitude ... not in range -180.0..180.0程序在开始下载数据前就退出。处理严格使用min_lat,min_lng,max_lat,max_lng四段格式纬度在前、经度在后不要写成经度优先。正确示例--bbox39.9042,116.4074,39.9092,116.4124错误示例少一段39.9042,116.4074,39.9092。解析逻辑见 src/coordinate_system/geographic/llbbox.rs支持逗号分隔四个值都必须是有限数字。想省掉手填 bbox也可以用地图选区工具框选或直接用本地数据--filetests/fixtures/sample.osm。验证命令通过参数解析日志进入「下载 OSM 数据」阶段而不是立刻退出。3.2 地形数据缺失生成出来全是平地判断世界生成成功但没有起伏或日志出现Mapterhorn tile service unreachable、HTTP 4xx/5xx from elevation service。处理确认模式不是--mode geo-only该模式刻意生成平地默认geo-terrain自带真实地形旧脚本里的--terrain参数已是无效占位。默认高程走 Mapterhorn 与区域高清源网络受限时改用 AWS 源--aws_only_elevation。高程模块的选源与容错逻辑在 src/elevation/程序启动时会自动清理过期的缓存瓦片cleanup_old_cached_tiles磁盘常年不足也会导致下载中断先清理磁盘再重试。验证重新生成后世界存在可见的山体/坡度--benchmark输出的计时中高程下载阶段正常结束。3.3 建筑缺失或很少判断世界里有路有地但房舍明显比真实区域少或某片区完全空白。处理确认所选区域在 OpenStreetMap 中本身有building标签OSM 覆盖稀疏的地区天然缺数据。开启 Overture 补全默认已开启被--overturefalse关掉时恢复它为 OSM 缺失的片区补充建筑轮廓偶有误检。建筑生成参数与容错逻辑在 src/element_processing/buildings.rs怀疑逻辑问题用--debug复跑看元素处理过程。验证生成后在对应片区能看到与 OSM 底图一致的建筑群不再成片的空地。 第 4 层出结果——游戏里读不了世界4.1 提示世界正在使用 / session.lock 报错判断报错为Failed to create session.lock file或Failed to acquire lock on session.lock file或游戏内提示「世界正在使用中」。处理关闭所有正在运行该世界的 Minecraft 实例和所有 Arnis 进程多开 Arnis 同时写同一目录也会互锁。若进程已死但锁残留删除目标世界目录下的session.lock文件。了解机制Arnis 写入世界时创建session.lock并加排他锁正常结束会自动解锁并删除该文件实现见 src/gui.rs 中的SessionLock。验证重跑后生成完成世界目录下没有残留session.lock游戏可直接进世界。4.2 游戏报错读不了 /Level.dat not found判断报错为Level.dat not found at ...、Failed to read level.dat或游戏世界列表里找不到生成的世界。处理检查--output-dir旧参数--path指向的是世界根目录——即包含level.dat、region/的那一层而不是它的父目录。Java 版--output-dir必填Bedrock 版--bedrock缺省输出到桌面。确认目标路径存在且是目录程序会明确报Path does not exist/Path is not a directory按提示修正路径即可。验证游戏世界列表出现该世界并能进入图标与目录结构对应⚡ 第 5 层跑得更快——大区域与内存5.1 大区域生成太慢判断平方公里级区域生成以小时计CPU 长时间 90% 左右GUI 版线程池默认占用 90% CPU。处理降比例是最有效的一招--scale 0.5块/米默认 1.0下限 0.05低于 0.3 建筑会被自动跳过程序会提示。关掉可选的重负载项不加--interior建筑内部生成、加--no-3d停用外部 3D 模型与车辆船只等摆件。用--benchmark单独看纯生成阶段耗时与下载阶段区分开避免把网络时间算进生成时间。验证同一 bbox 下--benchmark输出明显缩短且产物体积下降。5.2 内存溢出进程突然消失或 OOM判断进程无报错消失系统日志dmesg | grep -i oom出现 OOM 记录或生成大区域时系统整体卡死。处理扩大交换空间Linuxsudo fallocate -l 8G /swapfile sudo mkswap /swapfile sudo swapon /swapfile缩小单次生成范围把大区域切成 2–4 块分别生成--projection web_mercator让多次生成落在同一全局坐标上local默认则每次都从 (0,0) 开始。按 5.1 降--scale、去--interior单公里方块数随 scale 平方级下降。验证dmesg | grep -i oom无新增记录世界完整生成且level.dat可被游戏读取。 附录速查表与资源高频报错速查表报错特征原因对应场景卡linker cc not found缺少 C 工具链2.1 编译失败窗口空白 WebKit2GTK 报错Linux 显卡驱动与 WebKit 冲突2.2 GUI 界面空白Invalid LLBBox/Latitude ... not in rangebbox 格式或坐标范围错误3.1 bbox 解析失败Mapterhorn tile service unreachable/HTTP 4xx from elevation service高程服务不可达3.2 地形缺失世界有路无房OSM 该区域建筑数据稀疏3.3 建筑缺失Failed to acquire lock on session.lock file世界被游戏或另一 Arnis 进程占用4.1 session.lockLevel.dat not found at ...--output-dir指错层级4.2 游戏读不了进程消失 dmesg出现 OOM内存不足5.2 内存溢出官方资源清单项目说明与命令行/编译方式README.md全部参数定义与取值范围scale、mode、projection 等src/args.rs坐标与 bbox 解析实现src/coordinate_system/高程选源与缓存清理src/elevation/世界写入与 session.lock 锁机制src/gui.rs本地测试数据可配合--file离线验证tests/fixtures/sample.osm提交 Bug 报告前准备这四项完整日志终端全部输出 日志文件Tauri 日志位于应用数据目录的logs/Linux 下通常为~/.local/share/com.louisdev.arnis/logs/完整命令行与参数--bbox、--scale、--mode原样贴出操作系统与版本、Arnis 版本号生成世界目录的截图确认是否含level.dat与region/信息给全复现和定位都会快很多。【免费下载链接】arnisGenerate any location from the real world in Minecraft with a high level of detail.项目地址: https://gitcode.com/GitHub_Trending/ar/arnis创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表