时间:2014-11-27 来源:

cocos2dx2.x版本在android下CCLabelTTF的一个bug【编程语言】

cocos2dx在android下是采用Paint来生成图片然后在CCLabelTTF里显示的符合w3c标准,它具体的代码都在java类Cocos2dxBitmap里,符合w3c标准生成完成之后会调用一个jni函数将结果传给cpp层,html切图cpp层靠一个static变量来与java层交换数据,jpg或psd转html nHeight, pFontName, nSize)); // assign the dc.m_pData to m_pData in order to save time m_pData = dc.m_pData; dc.m_pData = NULL; CC_BREAK_IF(! m_pData); 这样一来,网站div+csscpp层肯定不会再出现double free了符合w3c标准,于是再测,符合w3c标准这个时候发现java层抛异常了网页外包接活,之前的异常由于程序退出根本就没打印得出来.再去追查java层,网页外包接活发现具体原因是

从这个问题再一次印证了web前端制作, fail loud的编程习惯承接网页制作,否则一个简单问题就变成复杂问题了.

setContentSize之后,承接网页制作java层根据ContentSize判断出来web切图报价,字体根本放不进去,web切图报价于是它认为创建出来的Bitmap的高度是0,而Bitmap根本不允许创建高度为0的,html切图制作于是异常了.我解决的办法是至少让它显示出来一行一列网页外包接活,这样我们看到显示就知道哪里出问题了,网页外包接活而不是直接崩溃.

BitmapDC &dc = sharedBitmapDC(); CC_BREAK_IF(! dc.getBitmapFromJava(pText, nHeight, pFontName, nSize)); // assign the dc.m_pData to m_pData in order to save time m_pData = dc.m_pData; CC_BREAK_IF(! m_pData); 这里有个问题,web切图报价sharedBitmapDC是一直共用的符合w3c标准,它的dc.m_pData永远保存的是上一次的数据,符合w3c标准如果某种原因java层调用的时候失败了网页外包接活,那么cpp层继续的话,jpg或psd转html就会拿到上上次的数据web前端制作,但是这个数据是由cpp层负责free的,手机前端外包于是就会出现double free导致程序崩溃.我们在实际中就碰到了这个情况承接网页制作,当时崩溃的栈告诉我们的是CCImage析构里出现问题

CCImage::~CCImage() { CC_SAFE_DELETE_ARRAY(m_pData); #if (CC_TARGET_PLATFORM == CC_PLATFORM_WINRT) || (CC_TARGET_PLATFORM == CC_PLATFORM_WP8) CC_SAFE_DELETE(m_ft); #endif } 可是单纯看CCImage的代码是看不问题的,承接网页制作而且如果这里有问题web切图报价,于是将上面CCImage里修改如下

点击次数:1471
作者:
web前端行业资讯
Web new NewsList
英特尔宣布与法拉利跨界合作欲将AI技术用于赛车运动 ,,2018年01月11日甲骨文服务器出漏洞:攻击者用漏洞挖矿获取加密货币 ,,2018年01月11日用深度学习设计图像视频压缩算法:更简洁、更强大 ,,2018年01月11日Ubuntu内核和NVIDIA更新:修复Meltdown和Spectre两处漏洞 ,,2018年01月11日AntDesign3.1.1发布,阿里企业级UI设计语言 ,,2018年01月11日微信「跳一跳」带火小游戏,开发者如何快速上手? ,,2018年01月11日谷歌公布最新安卓系统份额:你用上奥利奥了么? ,,2018年01月11日腾讯开发出“3D音效”算法:普通耳机实现3D实时语音效果 ,,2018年01月11日谷歌工程师点赞中国程序员实现Node.js启动超4倍提速 ,,2018年01月11日三星电子总裁兼CE部门负责人金炫奭:万物互联时代到来 ,,2018年01月11日NVIDIA和大众合作建立智能驾驶助手 ,,2018年01月11日GIMPS项目报告发现已知最大素数 ,,2018年01月11日微软与生物技术公司开展AI驱动的血液检测同时诊断数十种疾病 ,,2018年01月11日微软跨平台移动开发工具套件HockeyApp宣布免费 ,,2018年01月11日《硅谷》里神乎其神的压缩技术,AI正在一点点做出来 ,,2018年01月11日LinuxMint19代号敲定为“Tara”预计2018年5月至6月期间发布 ,,2018年01月11日Facebook发布wav2letter工具包,用于端到端自动语音识别 ,,2018年01月11日开源数据库ArangoDB正进行约1156万美元股权融资 ,,2018年01月11日IntelCPU漏洞闹大:腾讯云紧急升级 ,,2018年01月11日2018年1月全球数据库排名:Redis夺回第八 ,,2018年01月11日Lyft将联手无人驾驶公司于CES上展示无人驾驶汽车 ,,2018年01月11日京东X无人超市首家社会门店开业:刷脸进、微信自动结算 ,,2018年01月11日担心被AI取代是杞人忧天?高晓松跨年演讲说的有几分对 ,,2018年01月11日免费授权技术许可Intel宣布在未来CPU中集成雷电3 ,,2018年01月11日算法决定你在社交媒体上看到的信息 ,,2018年01月11日谷歌安全博客披露“英特尔内核漏洞”更多细节 ,,2018年01月04日Postgres10开发者新特性 ,,2017年12月28日阿里巴巴、狗尾草、苏大联合论文:基于对抗学习的众包标注用于中文命名实体识别 ,,2017年12月28日柯洁的2017:20岁,与AI斗与人类斗,其乐无穷 ,,2017年12月28日如果机器人拥有痛觉,这个世界会有哪些不一样? ,,2017年12月28日记一次我在华为和中兴的面试经历【移动开发】2015年08月03日人月神话:有多传奇? 【编程语言】2015年06月03日大陆身份证号码正则验证js脚本 【编程语言】2015年03月27日UVa12502-ThreeFamilies【编程语言】2015年01月24日九章算法面试题18复制链表 【系统运维】2015年05月13日从源码角度分析linearLayout测量过程以及weight机制 【综合】2015年08月24日【WebView学习之五】:调试WebApps 【Web前端】2014年11月06日UVA10213HowManyPiecesofLand?欧拉定理【编程语言】2015年02月03日集线器,路由器,交换机的作用和区别是什么?如何区分交换机,集线器,路由器?【研发管理】2014年11月18日HDU2099整除的尾数【水题】【Web前端】2015年01月27日高仿淘宝客户端【Web前端】2015年06月26日13.ios之控制器管理2【移动开发】2015年01月27日MyUnity3.0发布,简易的UnityTweak工具 ,,2016年06月23日javaDelayQueue延期队列21.7.3-------thinkingjava4 【移动开发】2015年06月02日AS3中的反射(速记)分析2014年01月29日数学之路-SPSS备忘(2) 【移动开发】2015年03月26日DICOM:DICOMPrint服务详细介绍 【研发管理】2015年04月24日【Linux探索之旅】第二部分第五课:用户和权限,有权就任性 【综合】2015年08月25日Android获取手机状态和监听手机来电状态【移动开发】2015年01月29日iOS客户端的微信支付接入 【系统运维】2015年05月29日JS:一个匹配日期的正则2014年01月29日Google在Chrome中内置广告 ,,2016年06月23日树莓派(RaspberryPI)上的PythonGUI实现(学习+总结)【移动开发】2015年07月28日利用百度地图Androidsdk高仿微信发送位置功能 【综合】2015年04月02日Java的重载和重写区别(面试常见) 【综合】2015年06月30日【汇编】冒泡排序,,,2015年05月15日CSAPP缓冲区溢出攻击实验2015年06月11日强连通分量【移动开发】2014年12月03日实用数据结构---图的操作和算法 【互联网】2015年03月13日MVC开发模型浅谈 【互联网】2015年02月09日
我们保证
We guarantee
> psd效果文件手工切图,保证图片效果最好体积最小利于传输
> 100%手写的HTML(DIV+CSS)编码,绝对符合W3C标准
> 代码精简、css沉余量小、搜索引擎扫描迅速,网页打开快捷
> 应用Css Sprite能够减少HTTP请求数,提高网页性能
> 跨浏览器兼容(IE6、7、8、9,Firefox火狐,Chrome谷歌)