Android应用程序与Facebooklogin不能与Facebook应用程序安装

当我卸载Facebook应用程序,但没有安装Facebook应用程序时,此代码运行良好。 我正在使用Facebook SDK 4.0。

这是我的代码

package com.example.nhp04.gqfood; import com.facebook.AccessToken; import com.facebook.AccessTokenTracker; import com.facebook.CallbackManager; import com.facebook.FacebookCallback; import com.facebook.FacebookException; import com.facebook.FacebookSdk; import com.facebook.Profile; import com.facebook.login.LoginResult; import com.facebook.login.widget.LoginButton; public class Login extends AppCompatActivity implements Animation.AnimationListener { private String info = ""; private LoginButton loginButton; private CallbackManager callbackManager; private AccessTokenTracker tracker; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); FacebookSdk.sdkInitialize(getApplicationContext()); callbackManager = CallbackManager.Factory.create(); setContentView(R.layout.activity_login); loginButton = (LoginButton)findViewById(R.id.login_button); loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() { @Override public void onSuccess(LoginResult loginResult) { AccessToken accessToken = loginResult.getAccessToken(); Profile profile = Profile.getCurrentProfile(); info = ("User ID: " + loginResult.getAccessToken().getUserId() + "\n" + "Auth Token: " + loginResult.getAccessToken().getToken()); } @Override public void onCancel() { info = ("Login attempt canceled."); } @Override public void onError(FacebookException e) { info = ("Login attempt failed."); } }); System.out.println(info); tracker = new AccessTokenTracker() { @Override protected void onCurrentAccessTokenChanged(AccessToken oldAccessToken, AccessToken currentAccessToken) { } }; tracker.startTracking(); } } 

这个函数用于检查login

 public boolean isLoggedIn() { AccessToken accessToken = AccessToken.getCurrentAccessToken(); return accessToken != null; } 

这在Resume和停止方法上

 @Override protected void onResume() { super.onResume(); if (isLoggedIn()){ Intent home = new Intent(this, home.class); startActivity(home); } } @Override protected void onStop() { super.onStop(); tracker.stopTracking(); finish(); } 

这是我的onActivityResult

 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); callbackManager.onActivityResult(requestCode, resultCode, data); if (resultCode == RESULT_OK) { Intent home = new Intent(this, home.class); startActivity(home); } else { Toast.makeText(getApplicationContext(), "Unable to login please check your internet connection",Toast.LENGTH_LONG).show(); } } 

Solutions Collecting From Web of "Android应用程序与Facebooklogin不能与Facebook应用程序安装"

你的onActivityResult()代码在哪里? 在onActivityResult()你需要使用callbackmanager 。 以下用户代码:

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

以上将在片段/活动中起作用。 确保你有

 1. facebook app installed on your testing device 2. In facebook developer account check whether you have mentioned - correct package name : refer your android project manifestfile.xml - check that have you mentioned correct launcher class - Check that you have given correct debug/release hash key 3. Cross check your facebook application id and that mentioned in your manifestfile.xml facebook meta data are same 

在你的代码改变如下

setContentView(...)之后创build你的callbackmanager ;

将其更改为下面的FacebookSdk.sdkInitialize(getApplicationContext()); AppEventsLogger.activateApp(this); setContentView(R.layout.activity_login); callbackManager = CallbackManager.Factory.create(); FacebookSdk.sdkInitialize(getApplicationContext()); AppEventsLogger.activateApp(this); setContentView(R.layout.activity_login); callbackManager = CallbackManager.Factory.create();

记住,如果这是你的Facebook问题,那么你的问题就在于此不要浪费时间寻找其他的东西。 也把login失败的方法在Facebook的SDK的callback。

发表评论,如果你仍然有问题

你可以删除你的Facebook应用程序中的应用程序。 像你可以打开Facebook应用程序去设置>>帐户设置>>应用程序>> youer应用程序>>删除。 删除你的应用程序后,卸载你的应用程序。并重新安装它,并检查loginFacebook的工作与否。

请更改您的Facebook的SDK版本,清理并重build您的应用程序后,它将工作

这是我的关键商店的问题,我做了这个谢谢你的回应。