重编译FNF可执行文件源码时出现Haxe/Lime相关未知报错,无线上解决方案
编译FNF触发
std@sys_file_type异常 我一直按照常规流程重新编译《周五夜放克(Friday Night Funkin',简称FNF)》的可执行文件源码,本次操作却意外触发了未知报错,经线上检索未找到可参考的解决方案,完整报错堆栈信息如下:
Called from ? line 1 Called from CommandLineTools.hx line 1895 Called from CommandLineTools.hx line 22 Called from a C function Called from CommandLineTools.hx line 125 Called from CommandLineTools.hx line 1703 Called from lime/tools/ProjectXMLParser.hx line 21 Called from a C function Called from lime/tools/ProjectXMLParser.hx line 50 Called from lime/tools/ProjectXMLParser.hx line 2043 Called from lime/tools/ProjectXMLParser.hx line 1528 Called from lime/tools/ProjectXMLParser.hx line 608 Called from a C function Called from lime/tools/ProjectXMLParser.hx line 719 Called from a C function Called from lime/tools/ProjectXMLParser.hx line 709 Called from /Users/runner/hostedtoolcache/haxe/4.2.1/x64/std/neko/_std/sys/FileSystem.hx line 69 Called from /Users/runner/hostedtoolcache/haxe/4.2.1/x64/std/neko/_std/sys/FileSystem.hx line 60 Uncaught exception - std@sys_file_type
排查指引
报错核心为Lime项目解析器在读取配置项时,调用系统文件接口识别路径类型失败,未做异常捕获直接崩溃。按优先级排查以下问题:
- 检查
project.xml配置有效性- 逐行核对所有资源、源码、第三方依赖的引用路径,确认无拼写错误、大小写匹配(macOS/Linux对路径大小写敏感)、对应文件/文件夹真实存在
- 移除配置中已被删除的旧资源、自定义依赖的残留路径,失效路径会直接触发文件类型识别失败
- 校验工具链匹配度
- 执行
haxelib list核对本地Haxe 4.2.1、Lime版本与FNF项目haxelib.json指定的版本完全一致,版本不兼容会导致解析器路径读取逻辑异常 - 若在CI环境编译(从堆栈路径
/Users/runner/hostedtoolcache/可判断为macOS托管构建环境),确认构建流程没有提前清理、移动项目核心资源的步骤
- 执行
- 清除缓存重试
- 删除项目根目录下的
.lime隐藏缓存文件夹,重新执行编译命令 - 检查项目目录权限,确保当前执行编译的用户对全目录有读取权限,权限不足会导致系统无法获取文件类型信息
- 删除项目根目录下的
内容的提问来源于stack exchange,提问作者MrNuke
相关产品推荐
相关产品推荐

