2016-03-05 23 views
1

我想在我正在開發的應用程序中實現Facebook登錄。但我不斷收到一個NullPointerException,我不太清楚爲什麼。空指針異常處理Facebook登錄fororid - com.facebook.FacebookCallback

與實現的類:

public class FacebookLogInActivity extends Activity { 
private TextView info; 

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    FacebookSdk.sdkInitialize(getApplicationContext()); 
    setContentView(R.layout.com_facebook_activity_layout); 

    CallbackManager callbackManager = CallbackManager.Factory.create(); 
    info = (TextView)findViewById(R.id.info); 
    LoginButton loginButton = (LoginButton) findViewById(R.id.login_button); 

    loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() { 
     @Override 
     public void onSuccess(LoginResult loginResult) { 
      info.setText(getString(R.string.facebook_login_successful, 
        loginResult.getAccessToken().getUserId(), 
        loginResult.getAccessToken().getToken())); 
     } 

     @Override 
     public void onCancel() { 
      info.setText(R.string.facebook_login_cancel); 
     } 

     @Override 
     public void onError(FacebookException error) { 
      info.setText(R.string.facebook_login_fail); 
     } 
    }); 
} 

錯誤編譯時,我得到的相關部分:

java.lang.RuntimeException: Unable to start activity ComponentInfo{fapptory_inc.rideshare/fapptory_inc.rideshare.FacebookLogInActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.facebook.login.widget.LoginButton.registerCallback(com.facebook.CallbackManager, com.facebook.FacebookCallback)' on a null object reference 

其他的東西,可能是重要的:activity_facebook_log_in.xmlAndroidManifest.xmlbuild.gradle

我讀過thesetwo已經問過的問題,而且據我所見,我已經解決了類似的問題。我不確定現在該去哪裏,並且非常感謝您的幫助。

非常感謝先進的。

+1

嘿,你正在使用的setContentView(com_facebook_activity_layout),然後當按年交你的xml其名稱是activity_facebook_log_in.xml – JpCrow

+0

你是對的。完全錯過了。非常感謝,感謝您的快速回復。 – user3592588

回答

2

要設置其他佈局到您的活動,而不是你爲這個活動創建的一個,你應該設置正確的一個:

setContentView(R.layout.activity_facebook_log_in);