Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.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_Facebook Graph Api_Facebook Login_Facebook Android Sdk - Fatal编程技术网

Android Facebook登录未调用回调函数

Android Facebook登录未调用回调函数,android,facebook,facebook-graph-api,facebook-login,facebook-android-sdk,Android,Facebook,Facebook Graph Api,Facebook Login,Facebook Android Sdk,我试图在一个简单应用程序的主要活动中添加一个Facebook登录按钮。当我按下“使用Facebook登录”按钮时,我打开了FB应用程序进行登录,但成功登录后,该应用程序返回到我的应用程序的主屏幕,没有发生任何事情(没有调用为LoginManager注册的回调函数) 我的代码如下所示: public class MainActivity extends FragmentActivity { Button changeButton; LoginButton loginButton;

我试图在一个简单应用程序的主要活动中添加一个Facebook登录按钮。当我按下“使用Facebook登录”按钮时,我打开了FB应用程序进行登录,但成功登录后,该应用程序返回到我的应用程序的主屏幕,没有发生任何事情(没有调用为LoginManager注册的回调函数)

我的代码如下所示:

public class MainActivity extends FragmentActivity {

    Button changeButton;
    LoginButton loginButton;
    CallbackManager callbackManager;
    MainActivity thisActivity;

    // Sets the Facebook login.
    private void setupFacebookLogin() {

        // Create the callbackManager and add functionality to it.
        callbackManager = CallbackManager.Factory.create();
        LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
            @Override
            public void onSuccess(LoginResult loginResult) {
                throw new AssertionError();
            }

            @Override
            public void onCancel() {

            }

            @Override
            public void onError(FacebookException e) {

            }
        });
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        thisActivity = this;

        // Initialize Facebook SDK.
        FacebookSdk.sdkInitialize(getApplicationContext());

        setupFacebookLogin();

        // Set the current layout to main.
        setContentView(R.layout.activity_main);
    }

    @Nullable
    @Override
    public View onCreateView(String name, Context context, AttributeSet attrs) {
        return super.onCreateView(name, context, attrs);
    }

    @Override
    protected void onResume() {
        super.onResume();
        AppEventsLogger.activateApp(this);
    }
    @Override
    public void onPause() {
        super.onPause();
        AppEventsLogger.deactivateApp(this);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data){
        super.onActivityResult(requestCode, resultCode, data);
        callbackManager.onActivityResult(requestCode, resultCode, data);
    }
}
public类MainActivity扩展了FragmentActivity{
按钮转换按钮;
登录按钮登录按钮;
CallbackManager CallbackManager;
主要活动本活动;
//设置Facebook登录。
私有void setupFacebookLogin(){
//创建callbackManager并向其添加功能。
callbackManager=callbackManager.Factory.create();
LoginManager.getInstance().registerCallback(callbackManager,new FacebookCallback()){
@凌驾
成功时公共无效(LoginResult LoginResult){
抛出新的断言错误();
}
@凌驾
公开作废{
}
@凌驾
公共无效onError(FaceBook例外e){
}
});
}
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
这个活动=这个;
//初始化Facebook SDK。
sdkinInitialize(getApplicationContext());
setupFacebookLogin();
//将当前布局设置为“主”。
setContentView(R.layout.activity_main);
}
@可空
@凌驾
创建视图的公共视图(字符串名称、上下文上下文、属性集属性){
返回super.onCreateView(名称、上下文、属性);
}
@凌驾
受保护的void onResume(){
super.onResume();
AppEventsLogger.activateApp(此);
}
@凌驾
公共无效暂停(){
super.onPause();
AppEventsLogger.停用EAPP(本);
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
//为菜单充气;这会将项目添加到操作栏(如果存在)。
getMenuInflater().充气(右菜单菜单菜单主菜单);
返回true;
}
@凌驾
公共布尔值onOptionsItemSelected(菜单项项){
//处理操作栏项目单击此处。操作栏将
//自动处理Home/Up按钮上的点击,只要
//在AndroidManifest.xml中指定父活动时。
int id=item.getItemId();
//noinspection SimplifiableIf语句
if(id==R.id.action\u设置){
返回true;
}
返回super.onOptionsItemSelected(项目);
}
@凌驾
受保护的void onActivityResult(int请求代码、int结果代码、意图数据){
super.onActivityResult(请求代码、结果代码、数据);
callbackManager.onActivityResult(请求代码、结果代码、数据);
}
}
此外,我的xml是:


由于onSuccess中的断言,我预计应用程序从FB登录返回时会崩溃。然而,事实并非如此。 任何帮助都将不胜感激,谢谢

在“使用Facebook登录”按钮中添加以下行,然后单击侦听器:

LoginManager.getInstance().logInWithReadPermissions(WelcomeActivity1.this, (Arrays.asList("public_profile", "user_friends","user_birthday","user_about_me","email")));

我也有同样的问题,但是使用LoginManager而不是LoginButton。我试图在答案中应用解决方案,但没有成功。你是怎么解决的?
LoginManager.getInstance().logInWithReadPermissions(WelcomeActivity1.this, (Arrays.asList("public_profile", "user_friends","user_birthday","user_about_me","email")));