AssetsManagerEx 热更新后的lua文件 cannot load incompatible bytecode

关于AssetsManagerEx 热更新后的lua文件无法识别的问题,提示:cannot load incompatible bytecode
cc.AssetsManagerEx:create(“res/project.manifest”, cc.FileUtils:getInstance():getWritablePath())

因为更新了language文件,同一个产品的本地APP更新后皆可正常更新使用,唯独各个应用商店的APP加载完成后,无法识别,并报出错误。

详细错误提示如下:

`Tue Jan 02 2024 10:42:08 GMT+0800 (中国标准时间)
[string "app/product/hx/common/Config.luac"]:0: module 'app.product.hx.configs.cn.language' not found:
no field package.preload['app.product.hx.configs.cn.language']app/product/hx/configs/cn/language.luac: cannot load incompatible bytecode
no file './app/product/hx/configs/cn/language.lua'
no file '/usr/local/share/luajit-2.1.0-beta3/app/product/hx/configs/cn/language.lua'
no file '/usr/local/share/lua/5.1/app/product/hx/configs/cn/language.lua'
no file '/usr/local/share/lua/5.1/app/product/hx/configs/cn/language/init.lua'
no file './app/product/hx/configs/cn/language.so'
no file '/usr/local/lib/lua/5.1/app/product/hx/configs/cn/language.so'
no file '/usr/local/lib/lua/5.1/loadall.so'
no file './app.so'
no file '/usr/local/lib/lua/5.1/app.so'
no file '/usr/local/lib/lua/5.1/loadall.so'
stack traceback:
[string "app/product/hx/common/Config.luac"]: in function 'requireLanguageConfig'
[string "app/product/hx/common/ConfigHelp.luac"]: in function 'getTipStr'
[string "app/product/hx/models/SociatyModel.luac"]: in function 'ctor'
[string "cocos/cocos2d/functions.luac"]: in function 'new'
[string "app/product/hx/init.luac"]: in function <[string "app/product/hx/init.luac"]:0>
[C]: in function 'require'
[string "app/MyApp.luac"]: in function <[string "app/MyApp.luac"]:0>
[C]: in function 'require'
[string "update.luac"]: in function ''
[string "update.luac"]: in function <[string "update.luac"]:0>

`

烦请管理员大大 以及各位高手指点一二,这种情况是什么症状呢,纠结了一周各个办法都使用过了,依旧无法解决,特上来烦请不吝赐教,感激涕零!

我记得luajit 是有32位和64位的字节码的区别,如果你应用商店里面使用的是armv8-64的,就需要用64位字节码。但如果你本地编译的是32位字节码的,那就会报不兼容。
一般我们用luajit是不编字节码,直接加密文本形式的lua就可以。或者编字节码的时候2种架构的放在一个文件,根据架构来选择哪一个部分。

以前一直是兼容的,但是最近被同事们提交的平台app,貌似是兼容v7a/arm64的导致更新的内容无法兼容。找到这个问题后我只能关闭字节码功能。请教下除此之外还有其他更好的办法么

有是有,要改读取lua的地方,自定义一个文件格式,把32位和64位的字节码编译好,分段放在这一个文件里面,文件头标一下64位字节码段的offset,启动程序的时候判断好架构,再选用加载哪一段。
就是我上面回复的2种架构打包放到一个文件里面。

或者你cdn上面就放置32位,64位2个文件夹,根据架构去下载不同的luac文件也可以。