Facebook iniciar sesión null puntero excepción android

Busqué mucho a través de stackoverflow pero no pude encontrar una respuesta que resuelva mi problema. Por lo tanto, estoy publicando esto.

Tengo una aplicación de Android de muestra en la que estoy tratando de usar Facebook Login. Aquí están los pasos que seguí:

Entorno: Android studio Android SDK versión: 22 Facebook SDK: 4.0

Seguí los pasos para instalar FB APK en el emulador, generé la clave hash del desarrollador y la actualicé en la aplicación-> configuración. Mi manifiesto de Android tiene estos códigos

<uses-permission android:name="android.permission.INTERNET"/>

<activity android:name="com.facebook.FacebookActivity"
        android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
        android:theme="@android:style/Theme.Translucent.NoTitleBar" android:label="@string/app_name" />

<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>

En mi archivo de diseño activity_main.xml, tengo este código

<com.facebook.login.widget.LoginButton
    android:id="@+id/fblogin_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:layout_marginTop="30dp"
    android:layout_marginBottom="30dp" />

Y finalmente en mi actividad principal tengo esto

public class MainActivity extends Activity {
LoginButton loginButton;
CallbackManager callbackManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    FacebookSdk.sdkInitialize(getApplicationContext());
    callbackManager = CallbackManager.Factory.create();
    loginButton = (LoginButton) findViewById(R.id.fblogin_button);
    loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
        @Override
        public void onSuccess(LoginResult loginResult) {
            Toast.makeText(getApplicationContext(),"Fb Login Success",Toast.LENGTH_LONG);
        }

        @Override
        public void onCancel() {
            Toast.makeText(getApplicationContext(),"Fb on cancel",Toast.LENGTH_LONG);
        }

        @Override
        public void onError(FacebookException e) {
            Toast.makeText(getApplicationContext(),"Fb Login Error",Toast.LENGTH_LONG);
        }
    });
    setContentView(R.layout.activity_main);

}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
    super.onActivityResult(requestCode, resultCode, data);
    Log.d("Inside Fb login","on Activiry result");
    callbackManager.onActivityResult(requestCode, resultCode, data);
}}

Recibo una excepción de puntero nulo como se muestra a continuación

 java.lang.RuntimeException: Unable to start activity componentInfo{PROJECT.MainActivity}: 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
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
        at android.app.ActivityThread.access$800(ActivityThread.java:144)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:135)
        at android.app.ActivityThread.main(ActivityThread.java:5221)
        at java.lang.reflect.Method.invoke(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:372)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)

Que me estoy perdiendo aqui ?

Respuestas a la pregunta(3)

Su respuesta a la pregunta