使用HaxeFlixel编译FnF源码报错,求助解决方案
FNF Kade Engine编译错误解决方案
问题场景
近期制作FNF模组,使用HaxeFlixel编译Kade Engine源码时持续报错,已严格遵循教程及官方构建文档步骤完成组件安装,仍出现如下编译错误:
source/psychlua/CallbackHandler.hx:55: characters 18-33 : Class<llua.Lua_helper> has no field sendErrorsToLua export/release/windows/haxe/ApplicationMain.hx:153: characters 5-36 : ... Called from macro here C:/HaxeToolkit/haxe/lib/flxanimate/3,0,4/flxanimate/frames/FlxAnimateFrames.hx:142: characters 21-27 : Field concat should be declared with 'override' since it is inherited from superclass flixel.graphics.frames.FlxAtlasFrames C:/HaxeToolkit/haxe/lib/flxanimate/3,0,4/flxanimate/frames/FlxAnimateFrames.hx:142: characters 21-27 : Field concat overrides parent class with different or incomplete type C:/HaxeToolkit/haxe/lib/flixel/5,8,0/flixel/graphics/frames/FlxAtlasFrames.hx:472: characters 18-24 : ... Base field is defined here C:/HaxeToolkit/haxe/lib/flxanimate/3,0,4/flxanimate/frames/FlxAnimateFrames.hx:142: characters 21-27 : number of function arguments source/backend/Paths.hx:605: characters 7-18 : flxanimate.FlxAnimate has no field loadAtlasEx (Suggestion: loadAtlas) source/objects/Character.hx:304: characters 87-101 : flxanimate.animate.FlxAnim has no field lastPlayedAnim source/objects/Character.hx:335: characters 20-26 : flxanimate.animate.FlxAnim has no field resume
问题根源
这些错误完全是依赖库版本不匹配导致的:
llua.Lua_helper无sendErrorsToLua字段:当前安装的llua版本与Kade Engine源码预期版本不一致,该字段在当前版本中不存在。- flxanimate的
concat方法冲突:你安装的flxanimate 3.0.4与flixel 5.8.0不兼容,flixel父类的concat方法签名已变更,但旧版flxanimate未同步更新。 loadAtlasEx/lastPlayedAnim/resume不存在:当前flxanimate版本移除或重命名了这些字段/方法,与Kade Engine源码的调用逻辑不匹配。
解决步骤
- 使用源码指定的依赖版本:
进入Kade Engine源码根目录,执行以下命令自动安装haxelib.json中定义的所有依赖的正确版本:haxelib install all - 清理冲突依赖:
如果之前手动安装过不兼容的库,先卸载冲突项(以flxanimate为例):
再执行第一步的命令重新安装指定版本。haxelib remove flxanimate - 验证依赖版本:
执行haxelib list查看已安装库的版本,确保所有依赖版本与haxelib.json中的声明完全一致。
内容的提问来源于stack exchange,提问作者lemonie
相关产品推荐
相关产品推荐

