3.8.3 和 3.8.5 版本适配 16KB 过程记录

看不同版本NDK的适配情况了,你看看官方给的修改方法

已经改好了,在ScriptEngine.cpp 文件所在有个 同名的 .rej 文件,打开 会看到 origin(origin.ToLcalChecked) 里少个指针参数 _isolate ,在.cpp文件里找到origin(origin.ToLcalChecked) 加在前面就行了,origin(_isolate,origin.ToLcalChecked),不过改了之后在这个.cpp文件可能还会报其他错误,都是同理少了指针参数,都加上 _isolate 就行了。

请问直接使用3.8.8是不是不需要这么多骚操作了?直接NDK 28 ,AGP8.5.1直接打包就行了?

理论上是的,没有这样操作过,看 3.8.8 的引擎是否完全适配 NDK 28, 如果不适配还是需要改源码的。

hello,麻烦问下,有遇到这个问题吗?

image


image
我也遇到这个了

确认是否启用了“自定义引擎”。如启用,请确保 cocos/core/scene-graph/Node.h 与 Node.cpp 来自同一版本提交;用全文搜索确认 Node.h 内是否包含 _finalOpacity

我这边 3.8.5 没有遇到这个报错,看样子是 v8 库的报错,可以先不改16KB 适配,先让 NDK r28 打包没问题了再适配 16KB 修改

我从Dashboard下载的3.8.4, 3.8.5版本都没有_finalOpacity这个属性,你用的版本有?


对应的.h文件只添加_finalOpacity(对照3.8.7-16k),又引入一批其他问题

没有的,我也是 3.8.5 的版本GP平台已经通过了,引擎方面就改我上面描述的这两处就 ok了,然后在根据官方PR 替换 v8 和修改两处 源码,基本没啥问题了

好的,谢啦,我再瞅瞅

你用 3.8.8 的版本试试,我也用这个:https://github.com/cocos/cocos-engine/pull/18999/files#diff-6b0fbd7439a8713f403c50801767af956b82ed6f4e1132738a2501084d3b3aae

好的,我重新对照调整,再编译下试试

我知道了我用的是这个里面的v8,导致编译失败,用3.8.8里面的v8就好了,还是感谢大佬


但是显示这个 是失败了吗?

你用 python 脚本,或者 zipalign 检测下

check_page_alignment_python.zip (3.5 KB)


但是怎么在16kb设备上运行呢,没有找到相关的文章

16KB 可以在模拟器上,或者找个支持 安卓 15 的测试机,这个检测过了基本没啥问题,可以在用 python 脚本看下第三方 sdk 是否都支持,都支持就没问题了

我这个设备算是吗?

算是的,脚本和命令行检测没问题就可以了,我没有15 的测试机我就没试