cocos3.13 播放 Cocosstudio发布的动画 奔溃

用cocosstudio编辑的动画 然后播放 崩溃

怀疑是因为ndk的版本的问题

调用堆栈

libcocos2dlua.so!__gnu_cxx::__normal_iterator<cocos2d::SpriteBatchNode* const*, std::vector<cocos2d::SpriteBatchNode*, std::allocatorcocos2d::SpriteBatchNode* > >::__normal_iterator(__gnu_cxx::__normal_iterator<cocos2d::SpriteBatchNode* const*, std::vector<cocos2d::SpriteBatchNode*, std::allocatorcocos2d::SpriteBatchNode* > > * const this, cocos2d::SpriteBatchNode * const * const& __i) Line 728 C++
libcocos2dlua.so!std::vector<cocos2d::SpriteBatchNode*, std::allocatorcocos2d::SpriteBatchNode* >::begin(const std::vector<cocos2d::SpriteBatchNode*, std::allocatorcocos2d::SpriteBatchNode* > * const this) Line 612 C++
libcocos2dlua.so!std::vector<cocos2d::SpriteBatchNode*, std::allocatorcocos2d::SpriteBatchNode* >::empty(const std::vector<cocos2d::SpriteBatchNode*, std::allocatorcocos2d::SpriteBatchNode* > * const this) Line 823 C++
libcocos2dlua.so!cocos2d::Vectorcocos2d::SpriteBatchNode*::empty(const cocos2d::Vectorcocos2d::SpriteBatchNode* * const this) Line 228 C++
libcocos2dlua.so!cocos2d::label::updateColor(cocos2d::Label * const this) Line 1954 C++
libcocos2dlua.so!cocos2d::Node::updateDisplayedOpacity(cocos2d::Node * const this, GLubyte parentOpacity) Line 1981 C++
libcocos2dlua.so!cocos2d::label::updateDisplayedOpacity(cocos2d::Label * const this, GLubyte parentOpacity) Line 1919 C++
libcocos2dlua.so!cocos2d::ProtectedNode::updateDisplayedOpacity(cocos2d::ProtectedNode * const this, GLubyte parentOpacity) Line 412 C++
libcocos2dlua.so!cocos2d::Node::updateCascadeOpacity(cocos2d::Node * const this) Line 2025 C++
libcocos2dlua.so!cocos2d::Node::setOpacity(cocos2d::Node * const this, GLubyte opacity) Line 1975 C++
libcocos2dlua.so!cocostudio::timeline::AlphaFrame::onApply(cocostudio::timeline::AlphaFrame * const this, float percent) Line 771 C++
libcocos2dlua.so!cocostudio::timeline::Frame::apply(cocostudio::timeline::Frame * const this, float percent) Line 81 C++
libcocos2dlua.so!cocostudio::timeline::Timeline::apply(cocostudio::timeline::Timeline * const this, unsigned int frameIndex) Line 128 C++
libcocos2dlua.so!cocostudio::timeline::Timeline::gotoFrame(cocostudio::timeline::Timeline * const this, int frameIndex) Line 66 C++
libcocos2dlua.so!cocostudio::timeline::ActionTimeline::gotoFrame(cocostudio::timeline::ActionTimeline * const this, int frameIndex) Line 431 C++
libcocos2dlua.so!cocostudio::timeline::ActionTimeline::gotoFrameAndPlay(cocostudio::timeline::ActionTimeline * const this, int startIndex, int endIndex, int currentFrameIndex, bool loop) Line 132 C++
libcocos2dlua.so!cocostudio::timeline::ActionTimeline::gotoFrameAndPlay(cocostudio::timeline::ActionTimeline * const this, int startIndex, int endIndex, bool loop) Line 120 C++
libcocos2dlua.so!lua_cocos2dx_studio_ActionTimeline_gotoFrameAndPlay(lua_State * tolua_S) Line 22554 C++
libcocos2dlua.so!lj_BC_FUNCC
libcocos2dlua.so!lua_pcall
libcocos2dlua.so!cocos2d::LuaStack::executeFunction(cocos2d::LuaStack * const this, int numArgs) Line 442 C++
libcocos2dlua.so!cocos2d::LuaStack::executeFunctionByHandler(cocos2d::LuaStack * const this, int nHandler, int numArgs) Line 488 C++
libcocos2dlua.so!<lambda(cocostudio::timeline::Frame*)>::operator()(cocostudio::timeline::Frame ) const(const <lambda(cocostudio::timeline::Frame)> * const __closure, cocostudio::timeline::Frame * frame) Line 490 C++
libcocos2dlua.so!std::_Function_handler<void(cocostudio::timeline::Frame*), lua_cocos2dx_ActionTimeline_setFrameEventCallFunc(lua_State*)::<lambda(cocostudio::timeline::Frame*)> >::_M_invoke(const std::_Any_data &, cocostudio::timeline::Frame )(const std::_Any_data & __functor, cocostudio::timeline::Frame * __args#0) Line 2039 C++
libcocos2dlua.so!std::function<void (cocostudio::timeline::Frame
)>::operator()(cocostudio::timeline::Frame*) const(const std::function<void(cocostudio::timeline::Frame*)> * const this, cocostudio::timeline::Frame * __args#0) Line 2439 C++
libcocos2dlua.so!cocostudio::timeline::ActionTimeline::emitFrameEvent(cocostudio::timeline::ActionTimeline * const this, cocostudio::timeline::Frame * frame) Line 373 C++
libcocos2dlua.so!cocostudio::timeline::Frame::emitEvent(cocostudio::timeline::Frame * const this) Line 58 C++
libcocos2dlua.so!cocostudio::timeline::EventFrame::onEnter(cocostudio::timeline::EventFrame * const this, cocostudio::timeline::Frame * nextFrame, int currentFrameIndex) Line 821 C++
libcocos2dlua.so!cocostudio::timeline::Timeline::binarySearchKeyFrame(cocostudio::timeline::Timeline * const this, unsigned int frameIndex) Line 204 C++
libcocos2dlua.so!cocostudio::timeline::Timeline::gotoFrame(cocostudio::timeline::Timeline * const this, int frameIndex) Line 65 C++
libcocos2dlua.so!cocostudio::timeline::ActionTimeline::gotoFrame(cocostudio::timeline::ActionTimeline * const this, int frameIndex) Line 431 C++
libcocos2dlua.so!cocostudio::timeline::ActionTimeline::gotoFrameAndPlay(cocostudio::timeline::ActionTimeline * const this, int startIndex, int endIndex, int currentFrameIndex, bool loop) Line 132 C++
libcocos2dlua.so!cocostudio::timeline::ActionTimeline::gotoFrameAndPlay(cocostudio::timeline::ActionTimeline * const this, int startIndex, int endIndex, bool loop) Line 120 C++
libcocos2dlua.so!lua_cocos2dx_studio_ActionTimeline_gotoFrameAndPlay(lua_State * tolua_S) Line 22554 C++
libcocos2dlua.so!lj_BC_FUNCC
libcocos2dlua.so!lua_pcall
libcocos2dlua.so!cocos2d::LuaStack::executeFunction(cocos2d::LuaStack * const this, int numArgs) Line 442 C++
libcocos2dlua.so!cocos2d::LuaStack::executeFunctionByHandler(cocos2d::LuaStack * const this, int nHandler, int numArgs) Line 488 C++
libcocos2dlua.so!<lambda(cocostudio::timeline::Frame*)>::operator()(cocostudio::timeline::Frame ) const(const <lambda(cocostudio::timeline::Frame)> * const __closure, cocostudio::timeline::Frame * frame) Line 490 C++
libcocos2dlua.so!std::_Function_handler<void(cocostudio::timeline::Frame*), lua_cocos2dx_ActionTimeline_setFrameEventCallFunc(lua_State*)::<lambda(cocostudio::timeline::Frame*)> >::_M_invoke(const std::_Any_data &, cocostudio::timeline::Frame )(const std::_Any_data & __functor, cocostudio::timeline::Frame * __args#0) Line 2039 C++
libcocos2dlua.so!std::function<void (cocostudio::timeline::Frame
)>::operator()(cocostudio::timeline::Frame*) const(const std::function<void(cocostudio::timeline::Frame*)> * const this, cocostudio::timeline::Frame * __args#0) Line 2439 C++
libcocos2dlua.so!cocostudio::timeline::ActionTimeline::emitFrameEvent(cocostudio::timeline::ActionTimeline * const this, cocostudio::timeline::Frame * frame) Line 373 C++
libcocos2dlua.so!cocostudio::timeline::Frame::emitEvent(cocostudio::timeline::Frame * const this) Line 58 C++
libcocos2dlua.so!cocostudio::timeline::EventFrame::onEnter(cocostudio::timeline::EventFrame * const this, cocostudio::timeline::Frame * nextFrame, int currentFrameIndex) Line 821 C++
libcocos2dlua.so!cocostudio::timeline::Timeline::binarySearchKeyFrame(cocostudio::timeline::Timeline * const this, unsigned int frameIndex) Line 204 C++
libcocos2dlua.so!cocostudio::timeline::Timeline::gotoFrame(cocostudio::timeline::Timeline * const this, int frameIndex) Line 65 C++
libcocos2dlua.so!cocostudio::timeline::ActionTimeline::gotoFrame(cocostudio::timeline::ActionTimeline * const this, int frameIndex) Line 431 C++
libcocos2dlua.so!cocostudio::timeline::ActionTimeline::gotoFrameAndPlay(cocostudio::timeline::ActionTimeline * const this, int startIndex, int endIndex, int currentFrameIndex, bool loop) Line 132 C++
libcocos2dlua.so!cocostudio::timeline::ActionTimeline::gotoFrameAndPlay(cocostudio::timeline::ActionTimeline * const this, int startIndex, int endIndex, bool loop) Line 120 C++
libcocos2dlua.so!lua_cocos2dx_studio_ActionTimeline_gotoFrameAndPlay(lua_State * tolua_S) Line 22554 C++
libcocos2dlua.so!lj_BC_FUNCC
libcocos2dlua.so!lua_pcall
libcocos2dlua.so!cocos2d::LuaStack::executeFunction(cocos2d::LuaStack * const this, int numArgs) Line 442 C++
libcocos2dlua.so!cocos2d::LuaStack::executeFunctionByHandler(cocos2d::LuaStack * const this, int nHandler, int numArgs) Line 488 C++
libcocos2dlua.so!<lambda(cocostudio::timeline::Frame*)>::operator()(cocostudio::timeline::Frame ) const(const <lambda(cocostudio::timeline::Frame)> * const __closure, cocostudio::timeline::Frame * frame) Line 490 C++
libcocos2dlua.so!std::_Function_handler<void(cocostudio::timeline::Frame*), lua_cocos2dx_ActionTimeline_setFrameEventCallFunc(lua_State*)::<lambda(cocostudio::timeline::Frame*)> >::_M_invoke(const std::_Any_data &, cocostudio::timeline::Frame )(const std::_Any_data & __functor, cocostudio::timeline::Frame * __args#0) Line 2039 C++
libcocos2dlua.so!std::function<void (cocostudio::timeline::Frame
)>::operator()(cocostudio::timeline::Frame*) const(const std::function<void(cocostudio::timeline::Frame*)> * const this, cocostudio::timeline::Frame * __args#0) Line 2439 C++
libcocos2dlua.so!cocostudio::timeline::ActionTimeline::emitFrameEvent(cocostudio::timeline::ActionTimeline * const this, cocostudio::timeline::Frame * frame) Line 373 C++
libcocos2dlua.so!cocostudio::timeline::Frame::emitEvent(cocostudio::timeline::Frame * const this) Line 58 C++
libcocos2dlua.so!cocostudio::timeline::EventFrame::onEnter(cocostudio::timeline::EventFrame * const this, cocostudio::timeline::Frame * nextFrame, int currentFrameIndex) Line 821 C++
libcocos2dlua.so!cocostudio::timeline::Timeline::binarySearchKeyFrame(cocostudio::timeline::Timeline * const this, unsigned int frameIndex) Line 204 C++
libcocos2dlua.so!cocostudio::timeline::Timeline::gotoFrame(cocostudio::timeline::Timeline * const this, int frameIndex) Line 65 C++
libcocos2dlua.so!cocostudio::timeline::ActionTimeline::gotoFrame(cocostudio::timeline::ActionTimeline * const this, int frameIndex) Line 431 C++
libcocos2dlua.so!cocostudio::timeline::ActionTimeline::gotoFrameAndPlay(cocostudio::timeline::ActionTimeline * const this, int startIndex, int endIndex, int currentFrameIndex, bool loop) Line 132 C++
libcocos2dlua.so!cocostudio::timeline::ActionTimeline::gotoFrameAndPlay(cocostudio::timeline::ActionTimeline * const this, int startIndex, int endIndex, bool loop) Line 120 C++
libcocos2dlua.so!lua_cocos2dx_studio_ActionTimeline_gotoFrameAndPlay(lua_State * tolua_S) Line 22554 C++
libcocos2dlua.so!lj_BC_FUNCC
libcocos2dlua.so!lua_pcall
libcocos2dlua.so!cocos2d::LuaStack::executeFunction(cocos2d::LuaStack * const this, int numArgs) Line 442 C++
libcocos2dlua.so!cocos2d::LuaStack::executeFunctionByHandler(cocos2d::LuaStack * const this, int nHandler, int numArgs) Line 488 C++
libcocos2dlua.so!<lambda(cocostudio::timeline::Frame*)>::operator()(cocostudio::timeline::Frame ) const(const <lambda(cocostudio::timeline::Frame)> * const __closure, cocostudio::timeline::Frame * frame) Line 490 C++
libcocos2dlua.so!std::_Function_handler<void(cocostudio::timeline::Frame*), lua_cocos2dx_ActionTimeline_setFrameEventCallFunc(lua_State*)::<lambda(cocostudio::timeline::Frame*)> >::_M_invoke(const std::_Any_data &, cocostudio::timeline::Frame )(const std::_Any_data & __functor, cocostudio::timeline::Frame * __args#0) Line 2039 C++
libcocos2dlua.so!std::function<void (cocostudio::timeline::Frame
)>::operator()(cocostudio::timeline::Frame*) const(const std::function<void(cocostudio::timeline::Frame*)> * const this, cocostudio::timeline::Frame * __args#0) Line 2439 C++
libcocos2dlua.so!cocostudio::timeline::ActionTimeline::emitFrameEvent(cocostudio::timeline::ActionTimeline * const this, cocostudio::timeline::Frame * frame) Line 373 C++
libcocos2dlua.so!cocostudio::timeline::Frame::emitEvent(cocostudio::timeline::Frame * const this) Line 58 C++
libcocos2dlua.so!cocostudio::timeline::EventFrame::onEnter(cocostudio::timeline::EventFrame * const this, cocostudio::timeline::Frame * nextFrame, int currentFrameIndex) Line 821 C++
libcocos2dlua.so!cocostudio::timeline::Timeline::binarySearchKeyFrame(cocostudio::timeline::Timeline * const this, unsigned int frameIndex) Line 204 C++
libcocos2dlua.so!cocostudio::timeline::Timeline::gotoFrame(cocostudio::timeline::Timeline * const this, int frameIndex) Line 65 C++
libcocos2dlua.so!cocostudio::timeline::ActionTimeline::gotoFrame(cocostudio::timeline::ActionTimeline * const this, int frameIndex) Line 431 C++
libcocos2dlua.so!cocostudio::timeline::ActionTimeline::gotoFrameAndPlay(cocostudio::timeline::ActionTimeline * const this, int startIndex, int endIndex, int currentFrameIndex, bool loop) Line 132 C++
libcocos2dlua.so!cocostudio::timeline::ActionTimeline::gotoFrameAndPlay(cocostudio::timeline::ActionTimeline * const this, int startIndex, int endIndex, bool loop) Line 120 C++
libcocos2dlua.so!lua_cocos2dx_studio_ActionTimeline_gotoFrameAndPlay(lua_State * tolua_S) Line 22554 C++
libcocos2dlua.so!lj_BC_FUNCC
libcocos2dlua.so!lua_pcall
libcocos2dlua.so!cocos2d::LuaStack::executeFunction(cocos2d::LuaStack * const this, int numArgs) Line 442 C++
libcocos2dlua.so!cocos2d::LuaStack::executeFunctionByHandler(cocos2d::LuaStack * const this, int nHandler, int numArgs) Line 488 C++
libcocos2dlua.so!<lambda(cocostudio::timeline::Frame*)>::operator()(cocostudio::timeline::Frame ) const(const <lambda(cocostudio::timeline::Frame)> * const __closure, cocostudio::timeline::Frame * frame) Line 490 C++
libcocos2dlua.so!std::_Function_handler<void(cocostudio::timeline::Frame*), lua_cocos2dx_ActionTimeline_setFrameEventCallFunc(lua_State*)::<lambda(cocostudio::timeline::Frame*)> >::_M_invoke(const std::_Any_data &, cocostudio::timeline::Frame )(const std::_Any_data & __functor, cocostudio::timeline::Frame * __args#0) Line 2039 C++
libcocos2dlua.so!std::function<void (cocostudio::timeline::Frame
)>::operator()(cocostudio::timeline::Frame*) const(const std::function<void(cocostudio::timeline::Frame*)> * const this, cocostudio::timeline::Frame * __args#0) Line 2439 C++
libcocos2dlua.so!cocostudio::timeline::ActionTimeline::emitFrameEvent(cocostudio::timeline::ActionTimeline * const this, cocostudio::timeline::Frame * frame) Line 373 C++
libcocos2dlua.so!cocostudio::timeline::Frame::emitEvent(cocostudio::timeline::Frame * const this) Line 58 C++
libcocos2dlua.so!cocostudio::timeline::EventFrame::onEnter(cocostudio::timeline::EventFrame * const this, cocostudio::timeline::Frame * nextFrame, int currentFrameIndex) Line 821 C++
libcocos2dlua.so!cocostudio::timeline::Timeline::binarySearchKeyFrame(cocostudio::timeline::Timeline * const this, unsigned int frameIndex) Line 204 C++
libcocos2dlua.so!cocostudio::timeline::Timeline::gotoFrame(cocostudio::timeline::Timeline * const this, int frameIndex) Line 65 C++
libcocos2dlua.so!cocostudio::timeline::ActionTimeline::gotoFrame(cocostudio::timeline::ActionTimeline * const this, int frameIndex) Line 431 C++
libcocos2dlua.so!cocostudio::timeline::ActionTimeline::gotoFrameAndPlay(cocostudio::timeline::ActionTimeline * const this, int startIndex, int endIndex, int currentFrameIndex, bool loop) Line 132 C++
libcocos2dlua.so!cocostudio::timeline::ActionTimeline::gotoFrameAndPlay(cocostudio::timeline::ActionTimeline * const this, int startIndex, int endIndex, bool loop) Line 120 C++
libcocos2dlua.so!lua_cocos2dx_studio_ActionTimeline_gotoFrameAndPlay(lua_State * tolua_S) Line 22554 C++
libcocos2dlua.so!lj_BC_FUNCC
libcocos2dlua.so!lua_pcall
libcocos2dlua.so!cocos2d::LuaStack::executeFunction(cocos2d::LuaStack * const this, int numArgs) Line 442 C++
libcocos2dlua.so!cocos2d::LuaStack::executeFunctionByHandler(cocos2d::LuaStack * const this, int nHandler, int numArgs) Line 488 C++
libcocos2dlua.so!<lambda(cocostudio::timeline::Frame*)>::operator()(cocostudio::timeline::Frame ) const(const <lambda(cocostudio::timeline::Frame)> * const __closure, cocostudio::timeline::Frame * frame) Line 490 C++
libcocos2dlua.so!std::_Function_handler<void(cocostudio::timeline::Frame*), lua_cocos2dx_ActionTimeline_setFrameEventCallFunc(lua_State*)::<lambda(cocostudio::timeline::Frame*)> >::_M_invoke(const std::_Any_data &, cocostudio::timeline::Frame )(const std::_Any_data & __functor, cocostudio::timeline::Frame * __args#0) Line 2039 C++
libcocos2dlua.so!std::function<void (cocostudio::timeline::Frame
)>::operator()(cocostudio::timeline::Frame*) const(const std::function<void(cocostudio::timeline::Frame*)> * const this, cocostudio::timeline::Frame * __args#0) Line 2439 C++
libcocos2dlua.so!cocostudio::timeline::ActionTimeline::emitFrameEvent(cocostudio::timeline::ActionTimeline * const this, cocostudio::timeline::Frame * frame) Line 373 C++
libcocos2dlua.so!cocostudio::timeline::Frame::emitEvent(cocostudio::timeline::Frame * const this) Line 58 C++
libcocos2dlua.so!cocostudio::timeline::EventFrame::onEnter(cocostudio::timeline::EventFrame * const this, cocostudio::timeline::Frame * nextFrame, int currentFrameIndex) Line 821 C++
libcocos2dlua.so!cocostudio::timeline::Timeline::binarySearchKeyFrame(cocostudio::timeline::Timeline * const this, unsigned int frameIndex) Line 204 C++
libcocos2dlua.so!cocostudio::timeline::Timeline::gotoFrame(cocostudio::timeline::Timeline * const this, int frameIndex) Line 65 C++
libcocos2dlua.so!cocostudio::timeline::ActionTimeline::gotoFrame(cocostudio::timeline::ActionTimeline * const this, int frameIndex) Line 431 C++
libcocos2dlua.so!cocostudio::timeline::ActionTimeline::gotoFrameAndPlay(cocostudio::timeline::ActionTimeline * const this, int startIndex, int endIndex, int currentFrameIndex, bool loop) Line 132 C++
libcocos2dlua.so!cocostudio::timeline::ActionTimeline::gotoFrameAndPlay(cocostudio::timeline::ActionTimeline * const this, int startIndex, int endIndex, bool loop) Line 120 C++
libcocos2dlua.so!lua_cocos2dx_studio_ActionTimeline_gotoFrameAndPlay(lua_State * tolua_S) Line 22554 C++
libcocos2dlua.so!lj_BC_FUNCC
libcocos2dlua.so!lua_pcall

不应该挂在empty判断啊,估计是Label这个对象已经不存在了,导致updateColor时这个this是个野指针了。
3.12不会么?

不会
所以我也查崩溃了

你把那句事件监听里面的播放注释掉 就没问题了

这边还有一个问题


音效里面 注释的这行 应该是没有这个audioid 直接导致死循环

是否设置了Finish的callback,参考这个PR修复一下:https://github.com/cocos2d/cocos2d-x/pull/16491

看看还是否会出现?

就是各个问题 因为map在循环中被stop的回调给删除了键值 所以出错

明白。:grin: