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





这是 3.8.3 版本的修改我这边没有报错

编辑居然有的编码不显示,我服了 :cold_sweat:

是这样子:


编译快结束时,就报了这个错,这个是怎么解决的?

我用的 NDK 是 28.2 的版本,没有遇到过这个报错,问问AI 看看

刚才解决了,我还参考 cwrysp 大佬的内容,在\native\engine\android\CMakeLists.txt 增加了

所以重复了

ok, 可能是的,官方我看描述 NDK r28一下是需要修改:

3.8.3 用易盾加固插件加密后,去android_studio 里打APK 打完后运行报错 14:41:30 [ERROR]: E/ ScriptEngine::evalString script jsb-adapter/web-adapter.js, failed!
2025-10-22 14:41:30.677 5657-5682 Cocos pid-5657 E 14:41:30 [ERROR]: E/ ERROR: Uncaught SyntaxError: Unexpected token ‘{’, location: main.js:0:0
2025-10-22 14:41:30.677 5657-5682 Cocos pid-5657 E 14:41:30 [ERROR]: [ERROR] file C:/ProgramData/cocos/editors/Creator/3.8.3/resources/resources/3d/engine/native/cocos/application/CocosApplication.cpp: line 173
2025-10-22 14:41:30.677 5657-5682 Cocos pid-5657 E 14:41:30 [ERROR]:
Uncaught Exception:
- location : main.js:0:0
- msg : Uncaught SyntaxError: Unexpected token ‘{’
- detail : 这怎么解? 不加密直接打包,就不会报错,在16KB之前加密打包不会有这种错误,16KB后加密打包就会这样,有大佬知道的吗?怎么解?


这个问题有遇到过吗?

这里显示成功了,但是 这个检测的这个地方是不是要写16kb才行了

这是对齐了吗?

有和我报一样错误的大佬吗?求解决办法

不是的,检测成功就OK了,Alignment 这个地方是不符合的会标记出来

ok,主要我用那个检测工具之前没有配置的时候也是不标记 :sweat_smile:,就很奇怪

你这个看样子是适配 v8 的引擎源码没有改对?或者看 NDK 和 gradle 版本是否适配

改完Node.cpp和JniCocosSurfaceView.cpp之后,好像对其他的ndk版本打包会产生影响,我打其他包报错了

看不同版本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, 如果不适配还是需要改源码的。