求助各位吴彦祖 cocos3.8.3构建生成Android的问题求解决

反馈时请提供以下信息:
–>

  • Creator 版本: 3.8.3

  • 目标平台: Android

吴彦祖们 就是我在使用别人发我的项目进行构建生成Android的时候构建能成功 但是生成一直卡在10%后面就直接生成失败

然后我在Android studio下打出的apk进行到下一关卡死 这是报错信息

把cocos 卸载干净 重新 安装一下 可能 是 引擎库被污染了

https://docs.cocos.com/creator/3.8/manual/zh/release-notes/upgrade-3.8-android.html

ok 我试试

这个我之前有试过

大佬还是不太行
报这个错误


2024-10-18 15:14:33 - log: [runCmd gradlew.bat - error] Exception in thread “main”
2024-10-18 15:14:33 - log: [runCmd gradlew.bat - error] java.lang.RuntimeException: java.util.zip.ZipException: zip END header not found

at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:78)

at org.gradle.wrapper.Install.createDist(Install.java:47)

at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:129)

at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:48)

2024-10-18 15:14:33 - log: [runCmd gradlew.bat - error] Caused by: java.util.zip.ZipException: zip END header not found

at java.base/java.util.zip.ZipFile$Source.findEND(ZipFile.java:1640)

at java.base/java.util.zip.ZipFile$Source.initCEN(ZipFile.java:1648)

at java.base/java.util.zip.ZipFile$Source.<init>(ZipFile.java:1486)

at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1448)

at java.base/java.util.zip.ZipFile$CleanableResource.<init>(ZipFile.java:718)

at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:252)

at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:181)

at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:195)

at org.gradle.wrapper.Install.unzip(Install.java:160)

at org.gradle.wrapper.Install.access$400(Install.java:29)

at org.gradle.wrapper.Install$1.call(Install.java:70)

at org.gradle.wrapper.Install$1.call(Install.java:47)

at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:65)

... 3 more

2024-10-18 15:14:33 - log: [task:make]: 构建插件 native 的钩子函数 make 执行失败,请检查插件的代码逻辑~, 23.333333333333332%
2024-10-18 15:14:33 - log: [task:make]: failed to exec gradlew.bat MastersMoves:assembleRelease, 36.66666666666667%
2024-10-18 15:14:33 - debug: // ---- builder:run-build-stage-make ---- (273ms)
2024-10-18 15:14:33 - debug: [Build Memory track]: builder:build-stage-total make start:190.47MB, end 190.92MB, increase: 463.59KB
2024-10-18 15:14:33 - error: Run build stage[make] in package F:\0YsCocosPoreject\HW\cocos3x_MastersMoves\build\android failed!
2024-10-18 15:14:33 - error: failed to exec gradlew.bat MastersMoves:assembleRelease

既然构建出安卓工程了,用android studio打开去看错误,他这个很难用的,分析不出什么问题

1赞

image

看这个应该是gradle的出问题了,大概率是gradle-8.0.2-bin.zip没有下载下来,可以试试挂个vpn,或者切换一下gradle的源。

大佬 这个我解决了 然后现在就游戏打开无法进入下一关 可以帮忙看看什么问题吗


报错好像是说什么getChildByName的父节点为空

大佬 这个我解决了 我在安卓查看日志的时候看 就游戏打开完成通关后无法进入下一关 可以帮忙看看什么问题吗


报错好像是说什么getChildByName的父节点为空

可能是你有对象已经销毁了 定时器还调用了这个对象的方法

应该是有的吧

image 判空处理一下看看

关键是你对象被销毁了,空对象调用就会失败,对 have_levels.children[i] 进行判空处理

大佬现在是这样子的

大佬还有就是我在cocos打开是能运行到下一关的 打包的apk就不行

结合下文的代码截图,应在是节点已经被销毁之后,触发了延时逻辑,建议记录setTimeout函数的返回值,在当前节点销毁或逻辑结束的地方调用一下clearTimeout


cocos可以正常运行,打包apk后出现class not found的问题有可能是以下两种原因导致的:

  1. 需要加载的类型脚本被放在了某个bundle内部,然后该bundle尚未被加载。

  2. 代码里调用 addComponent 方法时,传入的是字符串,如果构建时没有勾选调试模式,则打包后类名会被自动混淆,因此导致匹配不到对应的类型。

第一种原因可以通过在打开新关卡或在游戏初始化时,先加载脚本所在的bundle解决。
第二种原因将 addComponent 的入参修改为对应类的构造函数即可。

OK 我试试 谢谢大佬