我的代码似乎在 Android 上因 NullPointer 异常而崩溃。但适用于ios模拟器。
private void CallFBInit()
{
if(!FB.IsLoggedIn){
FB.Init(OnInitComplete, OnHideUnity);
}else{
shareDialog();
}
}
private void OnInitComplete()
{
FB.Login("email,publish_actions",fbLoginCallBack);
}
private void fbLoginCallBack(FBResult result){
shareDialog();
}
#region FB.Feed() example
public bool IncludeFeedProperties = false;
private Dictionary<string, string[]> FeedProperties = new Dictionary<string, string[]>();
private void CallFBFeed(FBResult result)
{
shareDialog();
}
private void shareDialog(){
Dictionary<string, string[]> feedProperties = null;
if (IncludeFeedProperties)
{
feedProperties = FeedProperties;
}
FB.Feed(
toId: FB.UserId,
link: ConfigCS.FeedLink,
linkName: ConfigCS.FeedLinkName,
linkCaption: ConfigCS.FeedLinkCaption,
linkDescription: ConfigCS.FeedLinkDescription,
picture:ConfigCS.FeedPicture,
mediaSource: ConfigCS.FeedMediaSource,
actionName: ConfigCS.FeedActionName,
actionLink: ConfigCS.FeedActionLink,
reference: ConfigCS.FeedReference,
properties: feedProperties,
callback: CallbackForFeed
);
}
#endregion
void CallbackForFeed(FBResult result)
{
if(result.Error!=null){
errorMessage=ConfigCS.fbError+result.Text;
showError=true;
return;
}else{
Debug.Log ("FB Feed error");
}
return;
}
private void OnHideUnity(bool isGameShown)
{
Debug.Log("Is game showing? " + isGameShown);
}
#endregion
我不知道为什么。当显示登录对话框并返回应用程序时,应用程序崩溃。但是如果我再试一次,(因为用户被认为是登录的),它可以正常工作。有人可以在我的代码中看到任何错误吗?
编辑:更准确地说 1. 当用户点击分享时,fb 登录对话框打开 2. 用户成功登录并返回应用程序后,应用程序崩溃并出现空指针异常
- 我再次打开应用程序,然后单击共享(此时用户在崩溃之前已经登录)并且它可以工作。
我无法指出错误,因为 adb 日志在 facebook.loginActivity 中只显示 NullPointException。我的启动函数是 CallFBInit();
编辑:我注意到的另一件事是,我已经安装了 facebook sdk 4.3.3,但它在控制台中显示 4.2.5
并在编辑器中