Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android facebook登录不会进入下一个活动_Android_Facebook_Android Intent_Android Activity_Facebook Login - Fatal编程技术网

Android facebook登录不会进入下一个活动

Android facebook登录不会进入下一个活动,android,facebook,android-intent,android-activity,facebook-login,Android,Facebook,Android Intent,Android Activity,Facebook Login,我想知道如何通过facebook进行简单的登录,登录后就可以进入下一个活动。目前,它只是带你去一个facebook注销页面,我不知道为什么 我在登录页面的onSuccess下有一行startActivity,但什么也没发生 我有两项活动。一个是SignIn,另一个是Profile,它有一个后退按钮。我一直在关注facebook教程: 感谢您提供的所有见解/建议 这是我的密码 签名 package com.example.test; import android.content.Intent;

我想知道如何通过facebook进行简单的登录,登录后就可以进入下一个活动。目前,它只是带你去一个facebook注销页面,我不知道为什么

我在登录页面的onSuccess下有一行startActivity,但什么也没发生

我有两项活动。一个是SignIn,另一个是Profile,它有一个后退按钮。我一直在关注facebook教程:

感谢您提供的所有见解/建议

这是我的密码

签名

package com.example.test;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import com.facebook.AccessToken;
import com.facebook.CallbackManager;
import com.facebook.FacebookCallback;
import com.facebook.FacebookException;
import com.facebook.login.LoginManager;
import com.facebook.login.LoginResult;
import com.facebook.login.widget.LoginButton;

import java.util.Arrays;

public class SignIn extends AppCompatActivity {

    private CallbackManager callbackManager;
    private static final String EMAIL = "email";
    private LoginButton login_button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.signin);

        callbackManager = CallbackManager.Factory.create();

        login_button = (LoginButton) findViewById(R.id.login_button);
        login_button.setReadPermissions(Arrays.asList(EMAIL));

        // Callback registration
        login_button.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
            @Override
            public void onSuccess(LoginResult loginResult) {
                // App code

                Intent intent = new Intent(SignIn.this, Profile.class);
                startActivity(intent);

            }

            @Override
            public void onCancel() {
                // App code
            }

            @Override
            public void onError(FacebookException exception) {
                // App code
            }
        });

        LoginManager.getInstance().registerCallback(callbackManager,
                new FacebookCallback<LoginResult>() {
                    @Override
                    public void onSuccess(LoginResult loginResult) {
                        // App code
                    }

                    @Override
                    public void onCancel() {
                        // App code
                    }

                    @Override
                    public void onError(FacebookException exception) {
                        // App code
                    }
                });

        AccessToken accessToken = AccessToken.getCurrentAccessToken();
        boolean isLoggedIn = accessToken != null && !accessToken.isExpired();

        LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("public_profile"));

    }


    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        callbackManager.onActivityResult(requestCode, resultCode, data);
        super.onActivityResult(requestCode, resultCode, data);

    }
}

我认为当您注册另一个回调时,您会覆盖第一个回调,请尝试删除第二个回调寄存器

LoginManager.getInstance().registerCallback(callbackManager,
            new FacebookCallback<LoginResult>() {
                @Override
                public void onSuccess(LoginResult loginResult) {
                    // App code
                }

                @Override
                public void onCancel() {
                    // App code
                }

                @Override
                public void onError(FacebookException exception) {
                    // App code
                }
            });


在第二次回调中,这似乎是朝着正确的方向进行的。我最终得到一个空指针异常。原因:java.lang.NullPointerException:尝试调用虚拟方法“android.view.Window$Callback android.view.Window.getCallback()'对于空对象引用,我认为您的
Profile
中的结构不好,您需要添加
onCreate
方法并设置
setContentView
例如
@Override protected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.Profile);}
记住特定活动的生命周期谢谢@JosueAmador,这些看起来很有希望!我要试试看!!
LoginManager.getInstance().registerCallback(callbackManager,
            new FacebookCallback<LoginResult>() {
                @Override
                public void onSuccess(LoginResult loginResult) {
                    // App code
                }

                @Override
                public void onCancel() {
                    // App code
                }

                @Override
                public void onError(FacebookException exception) {
                    // App code
                }
            });
@Override
            public void onSuccess(LoginResult loginResult) {
                // App code
            }
 @Override
        public void onSuccess(LoginResult loginResult) {
            // App code

            Intent intent = new Intent(SignIn.this, Profile.class);
            startActivity(intent);

        }