这篇文章主要介绍了ShareSDK造成App崩溃的一个BUG原因分析以及Fix方法,使用的是Cocos2d-x专用ShareSDK组件,需要的朋友可以参考下
近期研究了一下Game App做社交分享,最后选择了ShareSDK来集成,不仅是因为ShareSDK支持国内外主流社交平台,更重要的是ShareSDK提供了专门的 cocos2d-x集成方案,有专门的文档和代码Demo供开发者参考。
文档中提到了三种集成方式:纯Java方式、plugin-x方式以及Cocos2d-x专用组件方式,这里选择了ShareSDK Cocos2d-x专用组件(v2.3.7版本)的方式。按照文档中描述的步骤进行的相对顺利,在各个社交平台的appkey生效后,我们对demo app进行了测试,居然发现app经常随机性的崩溃,有时甚至是每次都崩溃,经过深入分析,发现这是ShareSDK Cocos2d-x专用组件的一个严重Bug,下面详细说明一下Bug的产生原因以及Fix方法。
一、App崩溃的场景和代码位置
发生崩溃的场景如下:
App Demo中有一个"Share"按钮,点击该按钮,App Demo向已经授权的社交平台分享一些Test Content,而App Demo就在收到分享结果应答时发生了崩溃。
代码位置大致如下:
void AppDemo::onShareClick(CCObject* sender)
{
… …
C2DXShareSDK::showShareMenu(NULL, content,
CCPointMake(100, 100),
C2DXMenuArrowDirectionLeft,
shareResultHandler);
}
void shareResultHandler(C2DXResponseState state, C2DXPlatType platType,
CCDictionary *shareInfo, CCDictionary *error)
{
switch (state) {
case C2DXResponseStateSuccess:
CCLog("Share Ok");
break;
case C2DXResponseStateFail:
CCLog("Share Failed");
break;
default:
break;
}
}
以上就是ShareSDK造成App崩溃的一个BUG原因分析以及Fix方法的详细内容,更多请关注0133技术站其它相关文章!