Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.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
Java 登录按钮facebook android不';不要重定向到新活动_Java_Android_Facebook_Facebook Android Sdk - Fatal编程技术网

Java 登录按钮facebook android不';不要重定向到新活动

Java 登录按钮facebook android不';不要重定向到新活动,java,android,facebook,facebook-android-sdk,Java,Android,Facebook,Facebook Android Sdk,当我运行我的Android应用程序,并单击“批准”以授予权限时,它不会被重定向到MainActivity。“登录”消息不会显示在Catlog中。我已经阅读了Facebook开发者指南,并将我的代码与Stack中的不同主题进行了比较。我看不出我做错了什么 我很高兴能得到帮助 public class Login extends Activity { /** * Called when the activity is first created. */ private Callba

当我运行我的Android应用程序,并单击“批准”以授予权限时,它不会被重定向到MainActivity。“登录”消息不会显示在Catlog中。我已经阅读了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);
  }

}

要使登录生效,必须从
FacebookCallback
anomymous类中删除
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);
}
callbackManager = CallbackManager.Factory.create();
LoginButton loginButton = (LoginButton) findViewById(R.id.login_button);
private CallbackManager CallbackManager;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u登录);
sdkinInitialize(getApplicationContext());
callbackManager=callbackManager.Factory.create();
LoginButton LoginButton=(LoginButton)findViewById(R.id.login_按钮);
setReadPermissions(“公共档案”、“电子邮件”、“用户朋友”);
registerCallback(callbackManager,newfacebookcallback()){
@凌驾
成功时公共无效(LoginResult LoginResult){
意图i=新意图(Login.this,MainActivity.class);
星触觉(i);
系统输出打印(“登录”);
}
@凌驾
公开作废{
//应用程序代码
}
@凌驾
public void onError(facebook异常){
//应用程序代码
Log.i(“错误”、“错误”);
}
});
}
@凌驾
受保护的void onActivityResult(int请求代码、int结果代码、意图数据){
super.onActivityResult(请求代码、结果代码、数据);
callbackManager.onActivityResult(请求代码、结果代码、数据);
}

首先,插入private
private CallbackManager CallbackManager
输入代码。它应该是这样的:

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);
}
callbackManager = CallbackManager.Factory.create();
LoginButton loginButton = (LoginButton) findViewById(R.id.login_button);
然后添加
FacebookSdk.sdkinInitialize(getApplicationContext())

super.onCreate(savedInstanceState)之前


试试这个希望吧,这很管用,以下几点对我很管用:

增加:

FacebookSdk.sdkInitialize(getApplicationContext());
之前:

super.onCreate(savedInstanceState);

这很奇怪,因为早些时候一切都很顺利;但是突然,我有了这个问题。现在,上面提到的解决方案解决了这个问题。

当您只提供代码时,很难为您提供帮助。日志中有错误吗?是否有空参数(特别是“resultCode”和“data”)?我建议您在提出问题后不要更新代码。接受的答案现在不再有意义。错误:无法解析symbol callbackManager callbackManager。onActivityResult(requestCode、resultCode、data)}编辑:缺少TOP中的更新创建callbackManager成员变量。看看我的代码,我已经编辑过了(第1行和第9行)。你错过了一点我的代码。更改行:final CallbackManager CallbackManager=CallbackManager.Factory.create();to:callbackManager=callbackManager.Factory.create();也不要忘记super.onActivityResult(请求代码、结果代码、数据);在onActivityResult()中。我没想到这会起作用,我不明白为什么在移动到
super.onCreate(savedInstanceState)之前后会起作用