是否有先执行 npm install, 另外如果是因为缓存问题,建议删除项目目录下的 library, temp等目录。
我想在3.8.3版本中修改,但是引擎里面没有 [NativeExecutorRenderGraph.h]这文件,要怎么修改?
合并 external 下的修改。引擎只看env.h的修改,其他的.gradle等参考 对应pr
请问 2.x 的进度如何了
最近会安排跟进处理
尝试更新项目包:
- 拉取了官方3.8.7-16k的适配native
- 升级了Android NDK(28.1.13356709)/SDK(compile34 target35 buildtools 35.0.0)/Studio(2025.1.2) AGP(8.6.1) Gradle(8.7)
- 编译出现 v8::ScriptOrigin origin(xxxx)构造函数参数问题,也修改正常了.
- 打包了游戏(包含v7 v8 x86-64),检测so(libcocos libswappy)也是16k(v7除外)
- 在AVD(API36 x86-64 GoogleAPI 16k的镜像,检测是16k page,adb shell getconf PAGE_SIZE)运行起来还是崩溃
- 在4k page的真机上运行没有问题.
09-03 08:55:42.171 5971 5971 F DEBUG : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
09-03 08:55:42.171 5971 5971 F DEBUG : Build fingerprint: 'google/sdk_gphone16k_x86_64/emu64xa16k:16/BE2A.250530.026.F3/13894323:userdebug/dev-keys'
09-03 08:55:42.171 5971 5971 F DEBUG : Revision: '0'
09-03 08:55:42.171 5971 5971 F DEBUG : ABI: 'x86_64'
09-03 08:55:42.171 5971 5971 F DEBUG : Timestamp: 2025-09-03 08:55:41.582149463+0000
09-03 08:55:42.171 5971 5971 F DEBUG : Process uptime: 1s
09-03 08:55:42.171 5971 5971 F DEBUG : Page size: 16384 bytes
09-03 08:55:42.171 5971 5971 F DEBUG : Cmdline: com.xxxx.xxxxx
09-03 08:55:42.171 5971 5971 F DEBUG : pid: 5940, tid: 5959, name: Thread-2 >>> com.soida.bouncyball <<<
09-03 08:55:42.171 5971 5971 F DEBUG : uid: 10214
09-03 08:55:42.171 5971 5971 F DEBUG : signal 5 (SIGTRAP), code 128 (SI_KERNEL), fault addr 0x0000000000000000
09-03 08:55:42.171 5971 5971 F DEBUG : rax 0000000000000000 rbx 00007db952398000 rcx 0000000000004000 rdx 0000000000001000
09-03 08:55:42.171 5971 5971 F DEBUG : r8 0000000000000010 r9 000000000018000d r10 748d9c5ddbd1e995 r11 00007db9c828cd30
09-03 08:55:42.171 5971 5971 F DEBUG : r12 00007db952398000 r13 00007dba4825beb0 r14 0000000000001000 r15 00007dbae8274810
09-03 08:55:42.171 5971 5971 F DEBUG : rdi 00007db952398000 rsi 0000000000001000
09-03 08:55:42.171 5971 5971 F DEBUG : rbp 00007db9ae6f42d0 rsp 00007db9ae6f40a0 rip 00007db951509e01
09-03 08:55:42.171 5971 5971 F DEBUG : 17 total frames
09-03 08:55:42.171 5971 5971 F DEBUG : backtrace:
09-03 08:55:42.171 5971 5971 F DEBUG : #00 pc 0000000001505e01 /data/app/~~L_98XhaKDLtqjO6phA_Cig==/com.soida.bouncyball-Zy_eX3sAZAmfXshBPnLeiw==/base.apk!libcocos.so (offset 0x110000) (BuildId: a40b193c324d7dc4eabc0c6badfce5ba518255b9)
09-03 08:55:42.171 5971 5971 F DEBUG : #01 pc 000000000171ccab /data/app/~~L_98XhaKDLtqjO6phA_Cig==/com.soida.bouncyball-Zy_eX3sAZAmfXshBPnLeiw==/base.apk!libcocos.so (offset 0x110000) (BuildId: a40b193c324d7dc4eabc0c6badfce5ba518255b9)
09-03 08:55:42.171 5971 5971 F DEBUG : #02 pc 000000000151d4d7 /data/app/~~L_98XhaKDLtqjO6phA_Cig==/com.soida.bouncyball-Zy_eX3sAZAmfXshBPnLeiw==/base.apk!libcocos.so (offset 0x110000) (BuildId: a40b193c324d7dc4eabc0c6badfce5ba518255b9)
我再试试,之前试过2次是没问题的。你要先把旧的apk 卸载后才可以。
每次都是先手动卸载,再Run CocosGame
模拟器你如果用的是x86架构,构建的cpu也需要选x86, 不然必崩。 gradle.properties 修改 prop_app_abi
PROP_APP_ABI=arm64-v8a:armeabi-v7a:x86_64
你是说只放x86-64?我现在的包是有这个三个版本的.
你试试只放一个试试
确认只有x86_64,so检测也是16k,AVD运行闪退.
嗯. 好的.麻烦了.
ok 那我再检查下.
先说结论,项目基于 3.8.5,参考 PR 大部分配置,可以运行跑起来,目前测试中,没明显崩溃
一些参考
-
由于 PR 是基于 3.8.7 的,所以如果你的项目是 3.8.7 ,那么完全抄这个PR,应该没问题
-
我这边是基于 3.8.5 的,就相差了两个版本,这个PR不完全对,还有一些地方需要更改(这部分更改可能是在 3.8.6上完成,所以PR没有列出来),构建时会有报错提示,但基本还可以小修完成
-
那如果你是更低版本,参考这个PR适配,可能还有具体版本具体问题分析的情况
external
我是完全搬仓库下来,但如果你是更低版本的 3.x 估计应该也行?
压缩vs不压缩
- 非GP分发或者侧载分发:此类型分发渠道,基本都是要弄apk包。apk包的体积非常敏感。结论是: apk 基本需要开启压缩,不然 apk 体积实在太大了(单一 64位的 API 架构就去到 45M 左右,要是在支持 v7 和 32位 架构,这个包就去到120M左右了,这还没有包含你的游戏内容)
- GP分发:aab 则不用开启压缩
packagingOptions {
jniLibs {
useLegacyPackaging = true/false
}
}
目前没有崩溃
遇到一个编译错误 (可能是NDK版本引发的API变动)
external/sources/Swappy/src/swappy/common/ChoreographerThread.cpp
ALooper_pollAll(-1, &outFd, &outEvents, &outData);
修改为
int events; // 如果回调函数处理所有事情,这个变量可能不是严格必需的
ALooper_pollOnce(-1, nullptr /* outFd */, &events /* outEvents */, nullptr /* outData */);


