jsb裏出現的 Invalid Native Object的一次bug修復的思考

Cocos2d: jsb: ERROR: File /Users/dcx_JD/Documents/cocos2d-x-2.2.2/scripting/javascript/bindings/generated/jsb_cocos2dx_auto.cpp: Line: 4911, Function: js_cocos2dx_CCNode_removeFromParentAndCleanupjavascript

Cocos2d: Invalid Native Objectjava

Cocos2d: JS: /var/mobile/Applications/XXXXXX/Documents/XXX/package/src/XXX/XXX/XXX/XXX:52:Error: Invalid Native Object數組

 

以上爲bug報錯信息,出現Invalid Native Object這種狀況,目前遇到的都是顯示對象形成的,此處流程是這樣:動畫

在一個方法裏建立一個動畫armature後,push到了一個數組,而後讓動畫播放指定的動做,等監聽到動畫的complete事件後,就讓armature.removeFromParent(true),對象

而後在最終的destory裏,經過遍歷數組訪問到了這個armature對象,此時使用 armature.getParent() 或者 armature.removeFromParent(true)就會報Invalid native obejct的錯誤。事件

解決方法就是在動畫complete以後,僅僅removeFromeParent是不行的,還要在此時把armature 從數組中剔除,作到沒有任何地方對其有引用,從而直接銷燬掉,destory裏其實就再也不處理了ip

相關文章
相關標籤/搜索