安卓高概率偶现闪退

  • Creator 版本: 3.8.3

  • 目标平台:
    Android 8.1.0

  • 重现方式:启动游戏时,在加载过程中闪退,看log貌似是渲染方面导致的闪退。在论坛搜到类似的闪退Log,但是对方是用了vulkan导致的闪退,我并没有勾选vulkan,只勾选了GLES2/3,麻烦官方大大帮忙看看报错信息

  • 首个报错:
    2024-10-30 15:03:58.408 25562-25624 AudioPlayerProvider com.oceanking.youyi V preload (@assets/assets/resources/native/e4/e41d9ac3-0288-4b61-a2b7-2e89a329fb9a.mp3) callback count: 1
    2024-10-30 15:03:58.409 25562-25624 AudioDecoder com.oceanking.youyi V ~AudioDecoder() 0xc79781a0
    2024-10-30 15:03:58.432 25562-25623 AudioDecoder com.oceanking.youyi D Interleave (@assets/assets/resources/native/76/76d68fdb-d793-47db-b3f9-29094c98bf0d.mp3) wasted 160.669006ms
    2024-10-30 15:03:58.432 25562-25623 AudioPlayerProvider com.oceanking.youyi V decode succeed
    2024-10-30 15:03:58.432 25562-25623 AudioPlayerProvider com.oceanking.youyi V preload (@assets/assets/resources/native/76/76d68fdb-d793-47db-b3f9-29094c98bf0d.mp3) callback count: 1
    2024-10-30 15:03:58.432 25562-25623 AudioDecoder com.oceanking.youyi V ~AudioDecoder() 0xc79784c0
    2024-10-30 15:03:58.854 25562-25569 zygote com.oceanking.youyi I Debugger is no longer active
    --------- beginning of crash
    2024-10-30 15:04:02.095 25562-25589 libc com.oceanking.youyi A Fatal signal 11 (SIGSEGV), code 1, fault addr 0x0 in tid 25589 (Thread-2), pid 25562 (oceanking.youyi)
    2024-10-30 15:04:02.469 25633-25633 DEBUG pid-25633 A pid: 25562, tid: 25589, name: Thread-2 >>> com.oceanking.youyi <<<
    2024-10-30 15:04:02.493 25633-25633 DEBUG pid-25633 A #01 pc 00f05e9d /data/app/com.oceanking.youyi-zixzL0SCz76OD3vIonJMYw==/lib/arm/libcocos.so (ZN2cc3gfx19doBufferTextureCopyINS0_6DeviceEEEvPKPKhPNS0_7TextureEPKNS0_17BufferTextureCopyEjPNS_12MessageQueueEPT+348)
    2024-10-30 15:04:02.493 25633-25633 DEBUG pid-25633 A #02 pc 00f05d39 /data/app/com.oceanking.youyi-zixzL0SCz76OD3vIonJMYw==/lib/arm/libcocos.so (cc::gfx::DeviceAgent::copyBuffersToTexture(unsigned char const* const*, cc::gfx::Texture*, cc::gfx::BufferTextureCopy const*, unsigned int)+56)
    2024-10-30 15:04:02.493 25633-25633 DEBUG pid-25633 A #03 pc 00f14711 /data/app/com.oceanking.youyi-zixzL0SCz76OD3vIonJMYw==/lib/arm/libcocos.so (cc::gfx::DeviceValidator::copyBuffersToTexture(unsigned char const* const*, cc::gfx::Texture*, cc::gfx::BufferTextureCopy const*, unsigned int)+268)
    2024-10-30 15:04:02.493 25633-25633 DEBUG pid-25633 A #04 pc 0140ea61 /data/app/com.oceanking.youyi-zixzL0SCz76OD3vIonJMYw==/lib/arm/libcocos.so (cc::SimpleTexture::uploadData(unsigned char const*, unsigned int, unsigned int)+172)
    2024-10-30 15:04:02.493 25633-25633 DEBUG pid-25633 A #05 pc 0140eaf7 /data/app/com.oceanking.youyi-zixzL0SCz76OD3vIonJMYw==/lib/arm/libcocos.so (cc::SimpleTexture::assignImage(cc::ImageAsset*, unsigned int, unsigned int)+62)
    2024-10-30 15:04:02.493 25633-25633 DEBUG pid-25633 A #06 pc 0140fd85 /data/app/com.oceanking.youyi-zixzL0SCz76OD3vIonJMYw==/lib/arm/libcocos.so (cc::Texture2D::setMipmapParams(std::__ndk1::vector<cc::IntrusivePtrcc::ImageAsset, std::__ndk1::allocator<cc::IntrusivePtrcc::ImageAsset>> const&)+260)
    2024-10-30 15:04:02.493 25633-25633 DEBUG pid-25633 A #07 pc 0140fac5 /data/app/com.oceanking.youyi-zixzL0SCz76OD3vIonJMYw==/lib/arm/libcocos.so (cc::Texture2D::setMipmaps(std::__ndk1::vector<cc::IntrusivePtrcc::ImageAsset, std::__ndk1::allocator<cc::IntrusivePtrcc::ImageAsset>> const&)+292)
    2024-10-30 15:04:02.493 25633-25633 DEBUG pid-25633 A #08 pc 0140ff61 /data/app/com.oceanking.youyi-zixzL0SCz76OD3vIonJMYw==/lib/arm/libcocos.so (cc::Texture2D::initialize()+14)
    2024-10-30 15:04:02.493 25633-25633 DEBUG pid-25633 A #09 pc 0140ff73 /data/app/com.oceanking.youyi-zixzL0SCz76OD3vIonJMYw==/lib/arm/libcocos.so (cc::Texture2D::onLoaded()+10)
    2024-10-30 15:04:02.493 25633-25633 DEBUG pid-25633 A #10 pc 01641d87 /data/app/com.oceanking.youyi-zixzL0SCz76OD3vIonJMYw==/lib/arm/libcocos.so
    2024-10-30 15:04:02.494 25633-25633 DEBUG pid-25633 A #11 pc 011881e3 /data/app/com.oceanking.youyi-zixzL0SCz76OD3vIonJMYw==/lib/arm/libcocos.so (jsbFunctionWrapper(v8::FunctionCallbackInfov8::Value const&, bool ()(se::State&), char const)+274)
    2024-10-30 15:04:02.494 25633-25633 DEBUG pid-25633 A #12 pc 01641cf9 /data/app/com.oceanking.youyi-zixzL0SCz76OD3vIonJMYw==/lib/arm/libcocos.so (js_cc_Asset_onLoadedRegistry(v8::FunctionCallbackInfov8::Value const&)+24)
    2024-10-30 15:04:02.494 25633-25633 DEBUG pid-25633 A #13 pc 01d33c1c /data/app/com.oceanking.youyi-zixzL0SCz76OD3vIonJMYw==/lib/arm/libcocos.so
    2024-10-30 15:04:03.965 25562-25622 AudioTrack com.oceanking.youyi W releaseBuffer() track 0xcb661c80 disabled due to previous underrun, restarting
    ---------------------------- PROCESS ENDED (25562) for package com.oceanking.youyi ----------------------------
    2024-10-30 15:04:04.390 452-572 InputDispatcher system_server E channel ‘9b08358 com.oceanking.youyi/com.cocos.game.AppActivity (server)’ ~ Channel is unrecoverably broken and will be disposed!
    2024-10-30 15:04:04.467 263-285 SurfaceFlinger surfaceflinger E Failed to find layer (SurfaceView - com.oceanking.youyi/com.cocos.game.AppActivity#0) in layer parent (no-parent).
    2024-10-30 15:04:04.467 263-285 SurfaceFlinger surfaceflinger E Failed to find layer (Background for - SurfaceView - com.oceanking.youyi/com.cocos.game.AppActivity#0) in layer parent (no-parent).

  • 之前哪个版本是正常的:

  • 手机型号: rockchip3399

  • 手机浏览器:

  • 编辑器操作系统:

  • 重现概率: 80%

2024-10-30 16:25:07.156 29341-29377 libc com.oceanking.youyi A C:/ProgramData/cocos/editors/Creator/3.8.3/resources/resources/3d/engine/native/cocos/base/threading/ThreadSafeLinearAllocator.cpp:38: cc::ThreadSafeLinearAllocator::ThreadSafeLinearAllocator(size_t, size_t): assertion “_buffer” failed
2024-10-30 16:25:07.156 29341-29377 libc com.oceanking.youyi A Fatal signal 6 (SIGABRT), code -6 in tid 29377 (Thread-2), pid 29341 (oceanking.youyi)
2024-10-30 16:25:07.558 29419-29419 DEBUG pid-29419 A pid: 29341, tid: 29377, name: Thread-2 >>> com.oceanking.youyi <<<
2024-10-30 16:25:07.587 29419-29419 DEBUG pid-29419 A #02 pc 01294be9 /data/app/com.oceanking.youyi-xTwYIzIbUIbjScQSuPArZw==/lib/arm/libcocos.so (cc::ThreadSafeLinearAllocator::ThreadSafeLinearAllocator(unsigned int, unsigned int)+112)
2024-10-30 16:25:07.587 29419-29419 DEBUG pid-29419 A #03 pc 00f595bd /data/app/com.oceanking.youyi-xTwYIzIbUIbjScQSuPArZw==/lib/arm/libcocos.so (ZN2cc3gfx19doBufferTextureCopyINS0_6DeviceEEEvPKPKhPNS0_7TextureEPKNS0_17BufferTextureCopyEjPNS_12MessageQueueEPT+260)
2024-10-30 16:25:07.587 29419-29419 DEBUG pid-29419 A #04 pc 00f594b1 /data/app/com.oceanking.youyi-xTwYIzIbUIbjScQSuPArZw==/lib/arm/libcocos.so (cc::gfx::DeviceAgent::copyBuffersToTexture(unsigned char const* const*, cc::gfx::Texture*, cc::gfx::BufferTextureCopy const*, unsigned int)+56)
2024-10-30 16:25:07.587 29419-29419 DEBUG pid-29419 A #05 pc 00f6848f /data/app/com.oceanking.youyi-xTwYIzIbUIbjScQSuPArZw==/lib/arm/libcocos.so (cc::gfx::DeviceValidator::copyBuffersToTexture(unsigned char const* const*, cc::gfx::Texture*, cc::gfx::BufferTextureCopy const*, unsigned int)+470)
2024-10-30 16:25:07.587 29419-29419 DEBUG pid-29419 A #06 pc 014b12f5 /data/app/com.oceanking.youyi-xTwYIzIbUIbjScQSuPArZw==/lib/arm/libcocos.so (cc::SimpleTexture::uploadData(unsigned char const*, unsigned int, unsigned int)+172)
2024-10-30 16:25:07.587 29419-29419 DEBUG pid-29419 A #07 pc 014b138b /data/app/com.oceanking.youyi-xTwYIzIbUIbjScQSuPArZw==/lib/arm/libcocos.so (cc::SimpleTexture::assignImage(cc::ImageAsset*, unsigned int, unsigned int)+62)
2024-10-30 16:25:07.587 29419-29419 DEBUG pid-29419 A #08 pc 014b25f5 /data/app/com.oceanking.youyi-xTwYIzIbUIbjScQSuPArZw==/lib/arm/libcocos.so (cc::Texture2D::setMipmapParams(std::__ndk1::vector<cc::IntrusivePtrcc::ImageAsset, std::__ndk1::allocator<cc::IntrusivePtrcc::ImageAsset>> const&)+260)
2024-10-30 16:25:07.587 29419-29419 DEBUG pid-29419 A #09 pc 014b2335 /data/app/com.oceanking.youyi-xTwYIzIbUIbjScQSuPArZw==/lib/arm/libcocos.so (cc::Texture2D::setMipmaps(std::__ndk1::vector<cc::IntrusivePtrcc::ImageAsset, std::__ndk1::allocator<cc::IntrusivePtrcc::ImageAsset>> const&)+292)
2024-10-30 16:25:07.588 29419-29419 DEBUG pid-29419 A #10 pc 014b27d1 /data/app/com.oceanking.youyi-xTwYIzIbUIbjScQSuPArZw==/lib/arm/libcocos.so (cc::Texture2D::initialize()+14)
2024-10-30 16:25:07.588 29419-29419 DEBUG pid-29419 A #11 pc 014b27e3 /data/app/com.oceanking.youyi-xTwYIzIbUIbjScQSuPArZw==/lib/arm/libcocos.so (cc::Texture2D::onLoaded()+10)
2024-10-30 16:25:07.588 29419-29419 DEBUG pid-29419 A #12 pc 016f426b /data/app/com.oceanking.youyi-xTwYIzIbUIbjScQSuPArZw==/lib/arm/libcocos.so
2024-10-30 16:25:07.588 29419-29419 DEBUG pid-29419 A #13 pc 0120145b /data/app/com.oceanking.youyi-xTwYIzIbUIbjScQSuPArZw==/lib/arm/libcocos.so (jsbFunctionWrapper(v8::FunctionCallbackInfov8::Value const&, bool ()(se::State&), char const)+274)
2024-10-30 16:25:07.588 29419-29419 DEBUG pid-29419 A #14 pc 016f41dd /data/app/com.oceanking.youyi-xTwYIzIbUIbjScQSuPArZw==/lib/arm/libcocos.so (js_cc_Asset_onLoadedRegistry(v8::FunctionCallbackInfov8::Value const&)+24)
2024-10-30 16:25:07.588 29419-29419 DEBUG pid-29419 A #15 pc 01df41dc /data/app/com.oceanking.youyi-xTwYIzIbUIbjScQSuPArZw==/lib/arm/libcocos.so
2024-10-30 16:25:09.124 29341-29405 AudioTrack com.oceanking.youyi W releaseBuffer() track 0xe257a280 disabled due to previous underrun, restarting
---------------------------- PROCESS ENDED (29341) for package com.oceanking.youyi ----------------------------
2024-10-30 16:25:09.505 452-572 InputDispatcher system_server E channel ‘3d3efa0 com.oceanking.youyi/com.cocos.game.AppActivity (server)’ ~ Channel is unrecoverably broken and will be disposed!
2024-10-30 16:25:09.575 263-904 SurfaceFlinger surfaceflinger E Failed to find layer (SurfaceView - com.oceanking.youyi/com.cocos.game.AppActivity#0) in layer parent (no-parent).
2024-10-30 16:25:09.576 263-285 SurfaceFlinger surfaceflinger E Failed to find layer (Background for - SurfaceView - com.oceanking.youyi/com.cocos.game.AppActivity#0) in layer parent (no-parent).

不用任何压缩纹理试试

谢谢大佬,勾选跳过压缩纹理但还是有报错,大佬看看

就算偶尔启动时不闪退,运行一段时间后又会有另外的报错导致闪退,以下是log:
--------- beginning of system
--------- beginning of crash
2024-10-30 20:04:18.155 1904-1904 DEBUG pid-1904 A pid: 31337, tid: 31364, name: Thread-2 >>> com.oceanking.youyi <<<
2024-10-30 20:04:18.197 1904-1904 DEBUG pid-1904 A #02 pc 012d6a31 /data/app/com.oceanking.youyi-2pgIVgElU8E0ObmFnJP2bQ==/lib/arm/libcocos.so (cc::gfx::CommandBufferValidator::draw(cc::gfx::DrawInfo const&)+252)
2024-10-30 20:04:18.197 1904-1904 DEBUG pid-1904 A #03 pc 0130a4ed /data/app/com.oceanking.youyi-2pgIVgElU8E0ObmFnJP2bQ==/lib/arm/libcocos.so (cc::gfx::CommandBuffer::draw(cc::gfx::InputAssembler*)+34)
2024-10-30 20:04:18.198 1904-1904 DEBUG pid-1904 A #04 pc 0131bce3 /data/app/com.oceanking.youyi-2pgIVgElU8E0ObmFnJP2bQ==/lib/arm/libcocos.so (cc::pipeline::renderProfiler(cc::gfx::RenderPass*, cc::gfx::CommandBuffer*, cc::scene::Model*, cc::scene::Camera const*)+334)
2024-10-30 20:04:18.198 1904-1904 DEBUG pid-1904 A #05 pc 0195341d /data/app/com.oceanking.youyi-2pgIVgElU8E0ObmFnJP2bQ==/lib/arm/libcocos.so
2024-10-30 20:04:18.198 1904-1904 DEBUG pid-1904 A #06 pc 01953261 /data/app/com.oceanking.youyi-2pgIVgElU8E0ObmFnJP2bQ==/lib/arm/libcocos.so
2024-10-30 20:04:18.198 1904-1904 DEBUG pid-1904 A #07 pc 019bfd2f /data/app/com.oceanking.youyi-2pgIVgElU8E0ObmFnJP2bQ==/lib/arm/libcocos.so (cc::framegraph::DevicePass::execute()+314)
2024-10-30 20:04:18.198 1904-1904 DEBUG pid-1904 A #08 pc 0141c2a1 /data/app/com.oceanking.youyi-2pgIVgElU8E0ObmFnJP2bQ==/lib/arm/libcocos.so (cc::framegraph::FrameGraph::execute()+88)
2024-10-30 20:04:18.198 1904-1904 DEBUG pid-1904 A #09 pc 019518c3 /data/app/com.oceanking.youyi-2pgIVgElU8E0ObmFnJP2bQ==/lib/arm/libcocos.so (cc::pipeline::ForwardPipeline::render(std::__ndk1::vector<cc::scene::Camera*, std::__ndk1::allocatorcc::scene::Camera*> const&)+386)
2024-10-30 20:04:18.198 1904-1904 DEBUG pid-1904 A #10 pc 0110b161 /data/app/com.oceanking.youyi-2pgIVgElU8E0ObmFnJP2bQ==/lib/arm/libcocos.so
2024-10-30 20:04:18.198 1904-1904 DEBUG pid-1904 A #11 pc 01107b25 /data/app/com.oceanking.youyi-2pgIVgElU8E0ObmFnJP2bQ==/lib/arm/libcocos.so (cc::Root::frameMoveEnd()+110)
2024-10-30 20:04:18.198 1904-1904 DEBUG pid-1904 A #12 pc 01107d25 /data/app/com.oceanking.youyi-2pgIVgElU8E0ObmFnJP2bQ==/lib/arm/libcocos.so (cc::Root::frameMove(float, int)+144)
2024-10-30 20:04:18.198 1904-1904 DEBUG pid-1904 A #13 pc 01637b91 /data/app/com.oceanking.youyi-2pgIVgElU8E0ObmFnJP2bQ==/lib/arm/libcocos.so
2024-10-30 20:04:18.199 1904-1904 DEBUG pid-1904 A #14 pc 0120145b /data/app/com.oceanking.youyi-2pgIVgElU8E0ObmFnJP2bQ==/lib/arm/libcocos.so (jsbFunctionWrapper(v8::FunctionCallbackInfov8::Value const&, bool ()(se::State&), char const)+274)
2024-10-30 20:04:18.199 1904-1904 DEBUG pid-1904 A #15 pc 016379ed /data/app/com.oceanking.youyi-2pgIVgElU8E0ObmFnJP2bQ==/lib/arm/libcocos.so (js_cc_Root_frameMoveRegistry(v8::FunctionCallbackInfov8::Value const&)+24)
2024-10-30 20:04:18.199 1904-1904 DEBUG pid-1904 A #16 pc 01df4560 /data/app/com.oceanking.youyi-2pgIVgElU8E0ObmFnJP2bQ==/lib/arm/libcocos.so
--------- beginning of main
image

大佬们,我断点找到了是Texture2D初始化传入的buffer是空,以下是debugger过程的截图,对应的资源我也找到了,没发现什么问题,是因为图片尺寸太大吗?但是也不是必现太奇怪了,差不多每启动3次会有1次不报错




你图片如果压缩过,有这种情况

但是我勾选了跳过压缩texture也还会有这个问题

请问大佬有什么办法解决这个问题吗?

不是跳过压缩,图片有没有用其他工具压缩过再导入到项目,如果用过就换成没压缩的原图试试

工程里图太多了…有办法看出是哪张图片有问题吗?

都压缩过是吧,那你只能慢慢排查了

兄弟吧我笑死了 哈哈

跟压缩没啥关系,不是必现,那可能是因为机器内存足够。就是图片太大了

程序写到内存泄漏,这说明之前的vulcan问题也是内存问题。

查到了,分配内存的时候报内存不足
image
image

大佬说得太对了,那我把合图尺寸改小能改善吗?

一次加载太多了吗,内存直接就撑不住了

的确,项目里很多大图,全都是怪物的帧动画,而且每个怪都有可能出,不好做分步加载,边玩边加载又会卡,就都得提前加载好

帧动画啊 ,那得好多, 如果是屏幕外的怪,到是可以延迟加载,同屏就得精简资源了