私のコードは 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.ユーザーが正常にログインしてアプリを返すと、アプリはnullpointer例外でクラッシュします
- アプリを再度開き、[共有] をクリックすると (この時点で、ユーザーはクラッシュする前に既にログインしています)、機能します。
adbログにはfacebook.loginActivityでNullPointExceptionとしか表示されないため、エラーを特定できませんでした。私の開始関数は CallFBInit(); です。
編集:もう1つ気づいたことは、facebook SDK 4.3.3をインストールしましたが、コンソールに4.2.5が表示されることです
そしてエディタで