(Lua)cocos2dx的v3.17cmake编译在安卓8.1中以Key-Value的方式插入table极易引起崩溃

如题,我目前是用lua开发,使用的是最新的3.17的引擎,直接用cocos new 生成的demo,在打成安卓包后,安卓8.1在使用table的key-value插入方式会极大几率引起崩溃,使用的是win7系统,androidstudio v3.1.2, ndk使用r16,使用cmake v3.10.2编译(ndkBuild有部分错误没编译通过,还没修改),在安卓8及以前的安卓版本都没有问题,在安卓8.1的时候就会出现,最开始遇到的是cocos/cocos2d/Cocos2dConstants.lua,这里里面在for循环里面对cc.KeyCode进行key-value的插入操作,在执行到第58次插入的时候引起崩溃,目前已测试过的设备有华为p20(安卓8.1)、小米4c(第三方安卓8.1,以前版本编译的包不会崩溃)。所有各位大神求帮助,非常感谢!!!!安卓8.1崩溃信息.zip (26.3 KB)

能否尝试一下使用 ndk-build。cmake 的构建方式,现在可能还不是特别成熟,有一些库的链接,和编译选项的设置,不是100% 的和 ndk-build 的方式相同。

使用 ndk-build 编译 arm64 有一个已知的编译错误,已经在这里修改: https://github.com/cocos2d/cocos2d-x/pull/18857

还有一个可能的错误,是路径过长,导致头文件找不到,可以参考:

http://forum.cocos.com/t/3-17-lua/60857/10?u=2627993092

@leda 使用ndk-build方式可以,没有上面的问题了,看来还要大神你们后面修复下啊!!

1赞

多谢反馈

希望cocos越来越好