用cocos2d-X 做个游戏,要接shareSDK的微信登陆功能,在安卓平台遇到问题,现象是 微信授权能够成功,并且可以执行回调方法,但是获取用户信息的时候出错 【 使用的API 是 C2DXShareSDK::getUserInfo(C2DXPlatTypeWeixiSession, getUserResultHandler); 】,不能进入获取用户信息的回调。程序直接崩溃了。
:15:
前两天我的好好的 昨天出现了你说的问题 你是怎么解决的啊
貌似shareSDK 代码有问题, 在示例代码中 ,可以看到授权标签,和获取用户信息标签,这两个功能的回调方法都有问题,本人根据需要将里面的代码重写了,这里给大家,仅作参考。
void getUserResultHandler(C2DXResponseState state, C2DXPlatType platType, Dictionary *userInfo, Dictionary *error)
{
if (state == C2DXResponseStateSuccess){
if (userInfo&&NULL!=userInfo) {
__String* nickname =dynamic_cast<__String*>( userInfo->objectForKey(“nickname”));
if (nickname&&NULL!=nickname) {
log("%s",nickname->getCString());
}
}
}else {
log(“getUserFailed”);
}
}
void authResultHandler(C2DXResponseState state, C2DXPlatType platType, Dictionary *error)
{
switch (state) {
case C2DXResponseStateSuccess:
log("C2DXResponseStateSuccess");
break;
case C2DXResponseStateFail:
log("C2DXResponseStateFail");
break;
default:
log("C2DXResponseStateCancle");
break;
}
}
最后需要添加一行代码: 找到C2DXShareSDk文件夹 ,下面 的Android,下面的JSON,下面的 CCJSONConverter.cpp 这个文件 ,找到 大概 130行,然后添加下面有注释的那行代码
case cJSON_Array:
{
Array * array = new Array();
array -> initWithCapacity(7);//这行代码需要添加
convertJsonToArray(json, array);
return array;
}
以上遇到的问题,貌似是属于shareSDK的bug不知道以后的版本会不会修改 。
该方法不知道针对你的问题管不管用
仅作参考
http://user.qzone.qq.com/61869460/2 我基友的空间文章,一些ShareSDK的问题。
你QQ是多少 请教下你 我的是1719677034