2.4.3 安卓 dragonbones 闪退

2020-12-07 17:19:09.478 11167-11214/org.cocos2d.demo A/libc: D:/CocosDashboard_1.0.7/resources/.editors/Creator/2.4.3/resources/cocos2d-x/cocos/editor-support/dragonbones/animation/Animation.cpp:246: dragonBones::AnimationState *dragonBones::Animation::playConfig(dragonBones::AnimationConfig *): assertion "false" failed
2020-12-07 17:19:09.479 11167-11214/org.cocos2d.demo A/libc: Fatal signal 6 (SIGABRT), code -6 (SI_TKILL) in tid 11214 (GLThread 1139), pid 11167 (rg.cocos2d.demo)

我搜索历史贴都是播放不存在的动画原因报错导致,但是我是有这些动画的,并且在微信 QQ 字节 网页这些都是没有问题的,使用龙骨版本是version":"5.5"

你是编译调试版本?调试版本会有断言提醒版本兼容问题,发布版本不会触发崩溃。

嗯,为不是调试模式多坚持了几秒钟然后报错

2020-12-07 18:29:36.747 15456-15471/? A/libc: Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x1c in tid 15471 (GLThread 1226), pid 15456 (rg.cocos2d.demo)
2020-12-07 18:29:36.893 15523-15523/? A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
2020-12-07 18:29:36.893 15523-15523/? A/DEBUG: Build fingerprint: 'OPPO/PDBM00/OP4AED:9/PPR1.180610.011/1604915083:user/release-keys'
2020-12-07 18:29:36.893 15523-15523/? A/DEBUG: Revision: '0'
2020-12-07 18:29:36.893 15523-15523/? A/DEBUG: ABI: 'arm'
2020-12-07 18:29:36.893 15523-15523/? A/DEBUG: pid: 15456, tid: 15471, name: GLThread 1226  >>> org.cocos2d.demo <<<
2020-12-07 18:29:36.893 15523-15523/? A/DEBUG: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x1c
2020-12-07 18:29:36.893 15523-15523/? A/DEBUG: Cause: null pointer dereference
2020-12-07 18:29:36.893 15523-15523/? A/DEBUG:     r0  00000000  r1  00000001  r2  f33cde8a  r3  0000000c
2020-12-07 18:29:36.893 15523-15523/? A/DEBUG:     r4  cc275020  r5  cc41ecf0  r6  cba77758  r7  00000482
2020-12-07 18:29:36.893 15523-15523/? A/DEBUG:     r8  dd537760  r9  cba77764  r10 00000000  r11 cff80e48
2020-12-07 18:29:36.893 15523-15523/? A/DEBUG:     ip  cfbdb908  sp  cff80e38  lr  cf0c4ab4  pc  cf0c4ac8
2020-12-07 18:29:36.910 15523-15523/? A/DEBUG: backtrace:
2020-12-07 18:29:36.910 15523-15523/? A/DEBUG:     #00 pc 00a2cac8  /data/app/org.cocos2d.demo-GK5CVVQWsk7OKJIrIJUH3Q==/lib/arm/libcocos2djs.so (dragonBones::CCArmatureDisplay::dbRender()+84)
2020-12-07 18:29:36.910 15523-15523/? A/DEBUG:     #01 pc 009fd7a0  /data/app/org.cocos2d.demo-GK5CVVQWsk7OKJIrIJUH3Q==/lib/arm/libcocos2djs.so (dragonBones::WorldClock::render()+60)
2020-12-07 18:29:36.910 15523-15523/? A/DEBUG:     #02 pc 008b3430  /data/app/org.cocos2d.demo-GK5CVVQWsk7OKJIrIJUH3Q==/lib/arm/libcocos2djs.so (cocos2d::middleware::MiddlewareManager::render(float)+272)
2020-12-07 18:29:36.910 15523-15523/? A/DEBUG:     #03 pc 00636fcc  /data/app/org.cocos2d.demo-GK5CVVQWsk7OKJIrIJUH3Q==/lib/arm/libcocos2djs.so (cocos2d::renderer::RenderFlow::render(cocos2d::renderer::NodeProxy*, float, cocos2d::renderer::Camera*)+428)
2020-12-07 18:29:36.910 15523-15523/? A/DEBUG:     #04 pc 0066d9b0  /data/app/org.cocos2d.demo-GK5CVVQWsk7OKJIrIJUH3Q==/lib/arm/libcocos2djs.so (js_renderer_RenderFlow_renderRegistry(v8::FunctionCallbackInfo<v8::Value> const&)+680)
2020-12-07 18:29:36.910 15523-15523/? A/DEBUG:     #05 pc 00fdb615  /data/app/org.cocos2d.demo-GK5CVVQWsk7OKJIrIJUH3Q==/lib/arm/libcocos2djs.so (v8::internal::FunctionCallbackArguments::Call(v8::internal::CallHandlerInfo)+336)
2020-12-07 18:29:36.910 15523-15523/? A/DEBUG:     #06 pc 00fdafc9  /data/app/org.cocos2d.demo-GK5CVVQWsk7OKJIrIJUH3Q==/lib/arm/libcocos2djs.so
2020-12-07 18:29:36.910 15523-15523/? A/DEBUG:     #07 pc 00fda987  /data/app/org.cocos2d.demo-GK5CVVQWsk7OKJIrIJUH3Q==/lib/arm/libcocos2djs.so
2020-12-07 18:29:36.910 15523-15523/? A/DEBUG:     #08 pc 00efc560  /data/app/org.cocos2d.demo-GK5CVVQWsk7OKJIrIJUH3Q==/lib/arm/libcocos2djs.so
2020-12-07 18:29:37.649 15533-15533/? E/AEE_AED: no valid package list
2020-12-07 18:29:37.655 782-782/? E//system/bin/tombstoned: Tombstone written to: /data/tombstones/tombstone_01

这个报错,看下是不是龙骨资源被释放了?确保龙骨节点运行的时候,龙骨资源不被释放。

龙骨资源是提前采用 cc.resources.load的方式加载的在播放时候才赋值到对应的dragonAsset和dragonAtlasAsset,这个过程也是没有问题的(在微信和QQ和浏览器多平台正常)

嗯,麻烦提供个复现崩溃的demo,我们排查看看~

额额,创建空白项目不会重现,只在我的项目出现了这个现象,打印资源对象属性

        console.log("dragonAsset",dragonAsset.loaded);
        console.log("dragonAsset", dragonAsset.refCount);
        console.log("dragonAtlasAsset",dragonAtlasAsset.loaded);
        console.log("dragonAtlasAsset", dragonAtlasAsset.refCount);
2020-12-07 20:39:41.508 25063-25105/? D/jswrapper: JS: dragonAsset true
2020-12-07 20:39:41.509 25063-25105/? D/jswrapper: JS: dragonAsset 1
2020-12-07 20:39:41.509 25063-25105/? D/jswrapper: JS: dragonAtlasAsset true
2020-12-07 20:39:41.509 25063-25105/? D/jswrapper: JS: dragonAtlasAsset 1

报错

2020-12-07 20:39:41.508 25063-25105/? D/jswrapper: JS: dragonAsset true
2020-12-07 20:39:41.509 25063-25105/? D/jswrapper: JS: dragonAsset 1
2020-12-07 20:39:41.509 25063-25105/? D/jswrapper: JS: dragonAtlasAsset true
2020-12-07 20:39:41.509 25063-25105/? D/jswrapper: JS: dragonAtlasAsset 1
2020-12-07 20:39:41.513 25063-25105/? D/apitrace: apitrace: warning: caught signal 11
2020-12-07 20:39:41.513 25063-25105/? D/apitrace: call flush from exceptionCallback
    
    
    --------- beginning of crash
2020-12-07 20:39:41.513 25063-25105/? A/libc: Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x1c in tid 25105 (GLThread 1366), pid 25063 (rg.cocos2d.demo)
2020-12-07 20:39:41.606 12268-12278/? I/elsa: addToCgroupProcs, success add pid:25230 to mCgroupProcsFd = 9, path:/dev/freezer/cgroup.procs!
2020-12-07 20:39:41.606 25231-25231/? I/crash_dump32: obtaining output fd from tombstoned, type: kDebuggerdTombstone
2020-12-07 20:39:41.606 12268-12278/? I/elsa: addToCgroupProcs, success add pid:25232 to mCgroupProcsFd = 9, path:/dev/freezer/cgroup.procs!
2020-12-07 20:39:41.607 782-782/? I//system/bin/tombstoned: received crash request for pid 25105
2020-12-07 20:39:41.615 25231-25231/? I/crash_dump32: performing dump of process 25063 (target tid = 25105)
2020-12-07 20:39:41.616 1174-1313/? I/BootReceiver: Copying /data/tombstones/.temporary31 to DropBox (SYSTEM_TOMBSTONE)
2020-12-07 20:39:41.632 1174-1313/? D/DropBoxManagerService: file :: /data/system/dropbox/SYSTEM_TOMBSTONE@1607344781630.txt
2020-12-07 20:39:41.633 1174-1306/? W/BroadcastQueue: Background execution not allowed: receiving Intent { act=android.intent.action.DROPBOX_ENTRY_ADDED flg=0x10 (has extras) } to com.google.android.gms/.stats.service.DropBoxEntryAddedReceiver
2020-12-07 20:39:41.634 1174-1306/? W/BroadcastQueue: Background execution not allowed: receiving Intent { act=android.intent.action.DROPBOX_ENTRY_ADDED flg=0x10 (has extras) } to com.google.android.gms/.chimera.GmsIntentOperationService$PersistentTrustedReceiver
2020-12-07 20:39:41.642 25231-25231/? A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
2020-12-07 20:39:41.642 25231-25231/? A/DEBUG: Build fingerprint: 'OPPO/PDBM00/OP4AED:9/PPR1.180610.011/1604915083:user/release-keys'
2020-12-07 20:39:41.642 25231-25231/? A/DEBUG: Revision: '0'
2020-12-07 20:39:41.642 25231-25231/? A/DEBUG: ABI: 'arm'
2020-12-07 20:39:41.642 25231-25231/? A/DEBUG: pid: 25063, tid: 25105, name: GLThread 1366  >>> org.cocos2d.demo <<<
2020-12-07 20:39:41.642 25231-25231/? A/DEBUG: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x1c
2020-12-07 20:39:41.642 25231-25231/? A/DEBUG: Cause: null pointer dereference
2020-12-07 20:39:41.642 25231-25231/? A/DEBUG:     r0  00000000  r1  00000001  r2  f33cde8a  r3  0000000c
2020-12-07 20:39:41.642 25231-25231/? A/DEBUG:     r4  ca19b340  r5  ccbffb70  r6  cc823758  r7  00000482
2020-12-07 20:39:41.642 25231-25231/? A/DEBUG:     r8  cbaff840  r9  cc823764  r10 00000000  r11 cffb6e48
2020-12-07 20:39:41.642 25231-25231/? A/DEBUG:     ip  cfbda908  sp  cffb6e38  lr  cf0c3ab4  pc  cf0c3ac8
2020-12-07 20:39:41.661 25231-25231/? A/DEBUG: backtrace:
2020-12-07 20:39:41.661 25231-25231/? A/DEBUG:     #00 pc 00a2cac8  /data/app/org.cocos2d.demo-uVfP2fOa7M26g3JT45_x9w==/lib/arm/libcocos2djs.so (dragonBones::CCArmatureDisplay::dbRender()+84)
2020-12-07 20:39:41.661 25231-25231/? A/DEBUG:     #01 pc 009fd7a0  /data/app/org.cocos2d.demo-uVfP2fOa7M26g3JT45_x9w==/lib/arm/libcocos2djs.so (dragonBones::WorldClock::render()+60)
2020-12-07 20:39:41.661 25231-25231/? A/DEBUG:     #02 pc 008b3430  /data/app/org.cocos2d.demo-uVfP2fOa7M26g3JT45_x9w==/lib/arm/libcocos2djs.so (cocos2d::middleware::MiddlewareManager::render(float)+272)
2020-12-07 20:39:41.661 25231-25231/? A/DEBUG:     #03 pc 00636fcc  /data/app/org.cocos2d.demo-uVfP2fOa7M26g3JT45_x9w==/lib/arm/libcocos2djs.so (cocos2d::renderer::RenderFlow::render(cocos2d::renderer::NodeProxy*, float, cocos2d::renderer::Camera*)+428)
2020-12-07 20:39:41.661 25231-25231/? A/DEBUG:     #04 pc 0066d9b0  /data/app/org.cocos2d.demo-uVfP2fOa7M26g3JT45_x9w==/lib/arm/libcocos2djs.so (js_renderer_RenderFlow_renderRegistry(v8::FunctionCallbackInfo<v8::Value> const&)+680)
2020-12-07 20:39:41.662 25231-25231/? A/DEBUG:     #05 pc 00fdb615  /data/app/org.cocos2d.demo-uVfP2fOa7M26g3JT45_x9w==/lib/arm/libcocos2djs.so (v8::internal::FunctionCallbackArguments::Call(v8::internal::CallHandlerInfo)+336)
2020-12-07 20:39:41.662 25231-25231/? A/DEBUG:     #06 pc 00fdafc9  /data/app/org.cocos2d.demo-uVfP2fOa7M26g3JT45_x9w==/lib/arm/libcocos2djs.so
2020-12-07 20:39:41.662 25231-25231/? A/DEBUG:     #07 pc 00fda987  /data/app/org.cocos2d.demo-uVfP2fOa7M26g3JT45_x9w==/lib/arm/libcocos2djs.so
2020-12-07 20:39:41.662 25231-25231/? A/DEBUG:     #08 pc 00efc560  /data/app/org.cocos2d.demo-uVfP2fOa7M26g3JT45_x9w==/lib/arm/libcocos2djs.so
2020-12-07 20:39:41.917 728-25168/? D/NuPlayerDriver: notifyListener_l(0xe80ae280), (211, 0, 0, 20), loop setting(0, 1)
2020-12-07 20:39:41.956 1174-1184/? I/system_server: Background concurrent copying GC freed 516902(25MB) AllocSpace objects, 118(8MB) LOS objects, 42% free, 34MB/60MB, paused 381us total 339.149ms
2020-12-07 20:39:41.957 1174-1181/? W/JHwRemoteBinder: BinderProxy is being destroyed but the application did not call unlinkToDeath to unlink all of its death recipients beforehand.  Releasing leaked death recipient: com.android.server.engineer.OppoEngineerNative$HidlDeathRecipient
2020-12-07 20:39:41.981 1174-1182/? W/System: A resource failed to call close. 
2020-12-07 20:39:41.981 1174-1182/? W/System: A resource failed to call close. 

阻止直接赋值,采用编辑器拖放的值正常播放,并没有了闪退

        // this.animation.dragonAsset = dragonAsset;
        // this.animation.dragonAtlasAsset = dragonAtlasAsset;

我也出现了这个问题,请问解决了吗 怎么解决的

后面怎么解决的 我的也出现这个问题@kenshin

替换龙骨动画的时候我也出现了这样的问题,一样的问题

我是不直接赋值了,采用默认的拖放在编辑器默认的动画直接播放的

谢了 我等下试试