java - 登录按钮 facebook android 不会重定向到新 Activity

标签 java android facebook facebook-android-sdk

当我运行我的 Android 应用程序并单击批准以授予权限时,它不会被重定向到 MainActivity。 “已登录”消息不会显示在目录中。我已经阅读了 Facebook 开发人员指南,并将我的代码与 Stack 上的不同主题进行了比较。我看不出我做错了什么。

我很乐意提供帮助。

public class Login extends Activity {

/**
 * Called when the activity is first created.
 */

     private CallbackManager callbackManager;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    FacebookSdk.sdkInitialize(getApplicationContext());
    setContentView(R.layout.activity_login);
    final CallbackManager callbackManager = CallbackManager.Factory.create();
    LoginButton loginButton = (LoginButton) findViewById(R.id.login_button);
    loginButton.setReadPermissions("public_profile", "email", "user_friends");


    loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {


        @Override
        public void onSuccess(LoginResult loginResult) {

            Intent i = new Intent(Login.this, MainActivity.class);
            startActivity(i);
            System.out.print("Logged in");

        }

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

        }

        @Override
        public void onError(FacebookException exception) {
            // App code
            Log.i("Error" , "Error");
            }


        });
    }

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

}

堆栈跟踪

  java.lang.RuntimeException: Failure delivering result   ResultInfo{who=null, request=64206, result=-1, data=Intent { (has extras) }} to   activity {org.MYapp.FBtestApp/org.MYapp.FBtestApp.Login}:   java.lang.NullPointerException: Attempt to invoke interface method 'boolean   com.facebook.CallbackManager.onActivityResult(int, int, android.content.Intent)'   on a null object reference
          at android.app.ActivityThread.deliverResults(ActivityThread.java:3974)
        at android.app.ActivityThread.handleSendResult(ActivityThread.java:4017)

 Caused by: java.lang.NullPointerException: Attempt to invoke interface method 'boolean com.facebook.CallbackManager.onActivityResult(int, int, android.content.Intent)' on a null object reference
        at org.MYapp.FBtestApp.Login.onActivityResult(Login.java:98)

最佳答案

要使登录正常工作,您必须从 FacebookCallback 匿名类中删除 onActivityResult() 方法。 正确的代码应该是这样的:

private CallbackManager callbackManager;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login);
    FacebookSdk.sdkInitialize(getApplicationContext());

    callbackManager = CallbackManager.Factory.create();

    LoginButton loginButton = (LoginButton) findViewById(R.id.login_button);
    loginButton.setReadPermissions("public_profile", "email", "user_friends");

    loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
        @Override
        public void onSuccess(LoginResult loginResult) {
            Intent i = new Intent(Login.this, MainActivity.class);
            startActivity(i);
            System.out.print("Logged in");
        }

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

        }

        @Override
        public void onError(FacebookException exception) {
            // App code
            Log.i("Error" , "Error");
        }
    });
}

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

关于java - 登录按钮 facebook android 不会重定向到新 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30527073/

相关文章:

Java 文件 I/O -ftp 繁忙错误读取文件错误

java - 多模式字符串拆分

android - 如何动态分配戒指颜色

java - 在我的应用程序中显示站点和 Facebook 的帖子

php - 在不在线/登录的情况下发布到用户的墙上 - 使用 Graph API 的 Facebook 共享

java - 检测传递给构造函数的给定对象中的当前注释

java - Spring mvc 与 hibernate,如何添加 Restful 服务端点?

java - 如何链接android中的按钮来执行功能?

javascript - Facebook Javascript SDK : Error validating access token when posting to feed

ios - Facebook iOS iOS SDK 3.1 iOS 5.1 XCode 4.5