我在Facebook Unity SDK 5.0.3 Beta和Unity 4.3.4中遇到一个奇怪的错误已经困难了几个小时
调用FB.Login之后,由于MiniFSON在iOSFacebook.cs第356行引发了异常,因此不会调用onInitDelegate.msg参数实际上是一个空字符串,这就是为什么MiniJSON无法解析为JSON
我找到的解决方法是在解析周围添加一个try / catch块
public void OnLogin(string msg)
{
try
{
var parameters = (Dictionary<string, object>)MiniJSON.Json.Deserialize(msg);
if (parameters.ContainsKey ("user_id"))
{
isLoggedIn = true;
}
//pull userId, access token and expiration time out of the response
ParseLoginDict (parameters);
}
catch (Exception e)
{
FbDebug.Error("Could not parse Json string received. Got the following error: [" + e.GetType().Name + "] " + e.Message + "\n" + "Json string: " + msg, LoggerTags.CONNECTION);
}
OnAuthResponse(new FBResult(msg));
}
首先,我不确定为什么响应是一个空字符串,所以也许你可以帮我找出答案 其次,我希望这很快就会得到解决
答案 0 :(得分:1)
此错误应该已在5.0.3中修复。当您复制包时,IOSFacebook.cs可能不会被覆盖。
unity SDK是我们其他SDK(JS,Android和iOS)的包装器。有时潜在的那些之间的差异很小。这是其中之一,我们会尽力解决这些差异,并使Unity开发人员(例如您自己)使用它们。