Facebook登录什么都不做

sid*_*rta 1 android facebook

我有一个使用Facebook登录的应用程序,已经使用Facebook中的SHA定义了哈希.

该应用程序昨天工作正常,但突然停止工作,我甚至将代码恢复到以前的功能版本,但没有任何改变.

每次我尝试登录时只看到一个加载微调器,一秒钟后消失,没有任何反应,我没有错误的日志,所以我不知道发生了什么.

我的登录按钮位于片段内,我正在使用此代码来管理它

public class TourFragmentFacebook  extends Fragment {
CallbackManager callbackManager;
View v;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    v = inflater.inflate(R.layout.fragment_facebook , container, false);


    FacebookSdk.sdkInitialize(v.getContext());

    LoginButton loginButton = (LoginButton) v.findViewById(R.id.login_button);
    loginButton.setFragment(this);
    loginButton.setReadPermissions(Arrays.asList("public_profile"));

    callbackManager = CallbackManager.Factory.create();

    LoginManager.getInstance().registerCallback(callbackManager,
            new FacebookCallback<LoginResult>() {
                @Override
                public void onSuccess(LoginResult loginResult) {
                    Log.d("app", "success");
                }

                @Override
                public void onCancel() {
                    // App code
                    Log.d("app", "cancel");
                }

                @Override
                public void onError(FacebookException exception) {
                    // App code
                    Log.d("app", "error");
                }
            });


    return v;
}

public static TourFragmentFacebook  newInstance(String text) {

    TourFragmentFacebook f = new TourFragmentFacebook ();
    Bundle b = new Bundle();
    b.putString("msg", text);

    f.setArguments(b);

    return f;


}}
Run Code Online (Sandbox Code Playgroud)

sid*_*rta 5

我找到了答案,希望对其他人有用

onActivityResult方法丢失了,所以没有办法触发facebook事件,我只添加了这段代码,现在一切正常

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    callbackManager.onActivityResult(requestCode, resultCode, data);
}
Run Code Online (Sandbox Code Playgroud)