游戏项目是基于cocos2dx2.2.3版本的,在win32上运行正常,移植到android上闪退,提示的错误信息如下:
invalid address or address of corrupt block 0x856dd000 passed to dlfree
Fatal signal 11 (SIGSEGV) at 0xdeadbaad (code=1), thread 23592 (Thread-7878)
Unable to open connection to debuggerd: Connection refused
最后排查导致android平台上闪退的原因是这句:monster_info->setDimensions( CCSize(260,100) );//导致android上闪退
是CCLabelTTF的Dimensions设置,整体代码如下:
CCLabelTTF *monster_info = CCLabelTTF::create(splists[1].c_str(),"font/fzzzh.ttf", 20);
monster_info->setHorizontalAlignment(kCCTextAlignmentCenter);
monster_info->setPosition(ccp(400, 85));
monster_info->setColor(ccc3(0xFF, 0xFF, 0xFF));
monster_info->setDimensions( CCSize(260,100) );//导致android上闪退
addChild(monster_info);
把那句代码改成monster_info->setDimensions( CCSize(270,100) );就能正常在android上跑,猜测原因是文字内容刚好要换行的地方导致的问题,紧标记一下。