Facebook ログイン (Facebook SDK バージョン 3.5) を使用して Facebook に最初にログインした後、Android アプリがクラッシュすることがあります (あまり頻繁ではありません)。
私は例外を取得しています:
java.lang.RuntimeException: Unable to resume activity {my.app.package/com.facebook.LoginActivity}: java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=64206, result=0, data=null} to activity {my.app.package/com.facebook.LoginActivity}: java.lang.NullPointerException
2 つの異なるルート例外:
時々:
java.lang.NullPointerException at com.facebook.AuthorizationClient.startOrContinueAuth(AuthorizationClient.java:135)
そして時折:
Caused by: java.lang.NullPointerException at com.facebook.AuthorizationClient.logAuthorizationMethodComplete(AuthorizationClient.java:519)
ほとんどの場合、私のアプリは正常に動作しています。
この問題を引き起こす可能性のあるアイデアはありますか?
編集:
マニフェスト内の私の Facebook SDK conf:
<activity
android:name="com.facebook.LoginActivity"
android:label="@string/app_name"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<meta-data
android:name="com.facebook.sdk.ApplicationId"
android:value="@string/applicationId" />
活動コード:
public class MainActivity extends FragmentActivity {
....
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initSession(savedInstanceState);
...
}
private void initSession(Bundle savedInstanceState) {
Settings.addLoggingBehavior(LoggingBehavior.INCLUDE_ACCESS_TOKENS);
Session session = Session.getActiveSession();
if (session == null) {
if (savedInstanceState != null) {
session = Session.restoreSession(this, null, statusCallback, savedInstanceState);
}
if (session == null) {
session = new Session(this);
}
Session.setActiveSession(session);
if (session.getState().equals(SessionState.CREATED_TOKEN_LOADED)) {
session.openForRead(new Session.OpenRequest(this).setCallback(statusCallback));
}
}
}
@Override
public void onStart() {
super.onStart();
Session session = Session.getActiveSession();
if (session != null) {
session.addCallback(statusCallback);
}
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Session session = Session.getActiveSession();
if (session != null) {
session.onActivityResult(this, requestCode, resultCode, data);
}
}
@Override
public void onStop() {
super.onStop();
Session session = Session.getActiveSession();
if (session != null) {
session.removeCallback(statusCallback);
}
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
Session session = Session.getActiveSession();
Session.saveSession(session, outState);
}
...
}
以前のバージョンの Facebook SDK でもこのエラーが発生しました。私は最新のFb Androidクライアントを持っています。何か助けはありますか?