从facebook登录然后在尝试重新登录android时导致崩溃

时间:2017-08-13 23:46:47

标签: android facebook

我在我的应用程序中添加了一个登录按钮,它运行得很好,但我的问题是当我在下一个活动中添加了一个注销按钮时,它已经注销,但是当我再次尝试登录时我的应用程序崩溃了!

我使用此代码注销: func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout,sizeForItemAt indexPath: IndexPath) -> CGSize { let size = Int(self.view.frame.size.width)/(score1.count + 1) return CGSize(width: CGFloat(size), height: 80) }

以及我登录的活动的java代码:

LoginManager.getInstance().logOut();

1 个答案:

答案 0 :(得分:0)

最后我得到了答案:

FacebookSdk.sdkInitialize(getApplicationContext());
callbackManager = CallbackManager.Factory.create();

fb = (Button) findViewById(R.id.fb);

loginButton.setReadPermissions(Arrays.asList("public_profile", "email", "user_friends", "user_birthday"));
        //"user_photos", "email","user_birthday", "public_profile"
        loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
            @Override
            public void onSuccess(LoginResult loginResult) {

                graphRequest(loginResult.getAccessToken());


            }

            @Override
            public void onCancel() {
                Toast.makeText(getApplicationContext(), "Non-Connecté : connexion interrupu!!", Toast.LENGTH_LONG).show();
            }

            @Override
            public void onError(FacebookException error) {
                Toast.makeText(getApplicationContext(), "Non-Connecté : Erreur de connexion!!", Toast.LENGTH_LONG).show();
            }
        });

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

                graphRequest(loginResult.getAccessToken());

                Intent menu_p = new Intent(ConnexionActivity.this, MenuPActivity.class);
                menu_p.putExtra("pseudo", profile.getFirstName());
                startActivity(menu_p);

                Toast.makeText(getApplicationContext(), "Connecté : " + profile.getFirstName() + " " + profile.getLastName(), Toast.LENGTH_LONG).show();
            }

            @Override
            public void onCancel() {
                Toast.makeText(getApplicationContext(), "Non-Connecté : connexion interrupu!!", Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onError(FacebookException error) {
                Toast.makeText(getApplicationContext(), "Non-Connecté : Erreur de connexion!!", Toast.LENGTH_SHORT).show();
            }
        });

fb.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {


                LoginManager.getInstance().logInWithReadPermissions(ConnexionActivity.this,
                        Arrays.asList("public_profile", "user_friends", "email"));
                /*facebook permissions : "user_photos", "email", "user_birthday", "public_profile"*/
                profile = Profile.getCurrentProfile().getCurrentProfile();

                //to verify if a login happened or not!!
                if (profile != null) {
                    // user has logged in
                } else {
                    // user has not logged in
                }

            }
        });