CCLabelTTF::带有字符串的setString包含完整形状标点符号导致CCImage::~CCImage()在Android中崩溃

CCLabelTTF::带有字符串的setString包含完整形状标点符号导致CCImage::~CCImage()在Android中崩溃,android,cocos2d-x,Android,Cocos2d X,要重复这个崩溃,首先我们需要一个字符串,比如 "blabla...bla " ^ here is a full shape blank space. Other full shape punctuation also cause this crash, such as `!`, `・`. 第二,我们需要一个CCLabelTTF setDimensions(const CCSize &dim) setString(const char

要重复这个崩溃,首先我们需要一个字符串,比如

"blabla...bla "
             ^
             here is a full shape blank space. Other full shape punctuation also cause this crash, such as `!`, `・`.
第二,我们需要一个CCLabelTTF

setDimensions(const CCSize &dim)
setString(const char *string) // use the string above
然后,如果且仅当唯一的完整形状空白碰巧显示在另一个新行中时,它就会崩溃

崩溃日志如下所示:

signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr deadbaad
Stack frame #00  pc 0000f41c  /system/lib/libc.so
Stack frame #01  pc 000121c3  /system/lib/libc.so (dlfree+1458)
Stack frame #02  pc 0000d333  /system/lib/libc.so (free+10)
Stack frame #03  pc 006ecc60  /data/app-lib/jp.co.gu3.allen-1/liballen.so (cocos2d::CCImage::~CCImage()+128): Routine ~CCImage in /Users/tangyue/project/crosskaiser-native-android/application/proj.android/../../cocos2dx/platform/CCImageCommon_cpp.h:91
Stack frame #04  pc 006eccc8  /data/app-lib/jp.co.gu3.allen-1/liballen.so (cocos2d::CCImage::~CCImage()+20): Routine ~CCImage in /Users/tangyue/project/crosskaiser-native-android/application/proj.android/../../cocos2dx/platform/CCImageCommon_cpp.h:92
Stack frame #05  pc 00684234  /data/app-lib/jp.co.gu3.allen-1/liballen.so (cocos2d::CCObject::release()+204): Routine release in /Users/tangyue/project/crosskaiser-native-android/application/proj.android/../../cocos2dx/cocoa/CCObject.cpp:86
Stack frame #06  pc 007230a8  /data/app-lib/jp.co.gu3.allen-1/liballen.so (cocos2d::CCTexture2D::initWithString(char const*, char const*, float, cocos2d::CCSize const&, cocos2d::CCTextAlignment, cocos2d::CCVerticalTextAlignment)+624): Routine initWithString in (null):0
Stack frame #07  pc 006b0488  /data/app-lib/jp.co.gu3.allen-1/liballen.so (cocos2d::CCLabelTTF::updateTexture()+308): Routine updateTexture in /Users/tangyue/project/crosskaiser-native-android/application/proj.android/../../cocos2dx/label_nodes/CCLabelTTF.cpp:275
Stack frame #08  pc 006afeb8  /data/app-lib/jp.co.gu3.allen-1/liballen.so (cocos2d::CCLabelTTF::setString(char const*)+204): Routine setString in /Users/tangyue/project/crosskaiser-native-android/application/proj.android/../../cocos2dx/label_nodes/CCLabelTTF.cpp:144
在CCImageCommon\u cpp.h:91中,它是:

CCImage::~CCImage()
{
    CC_SAFE_DELETE_ARRAY(m_pData);
}
因此,如果有人能帮助我或给我一些建议,我将不胜感激

该设备是三星Galaxy S4 SC-04E


cocos2d-x版本是cocos2d-2.1rc0-x-2.1.3

我在使用CCLabelTTF时遇到了相同的问题,我发现如果您已设置了尺寸,请确保最后一行的结尾不能是\n


我找不出原因,我更改了字体大小,然后崩溃了。

我找到了问题的确切位置

看看这个,然后

简单的代码导致了一个大问题,花了我很多时间:(


帮助这个可以帮助像我这样的穷人。

谢谢你的回答。我首先用类似的方法解决了这个问题,但后来我遇到了越来越多让我发疯的崩溃,最后找到了原因。你可以看看下面我的答案。(注:我忘了我的这篇文章,所以现在就发布解决方案。)