无法找到com.facebook.katana.provider.AttributionIdProvider的提供商信息

Rom*_*man 51 android facebook login logcat

任何人都知道这个错误意味着什么?每次我将我的Android应用程序连接到Facebook(通过模拟器)时,我都会在LogCat shell中获取它.

负责授权功能的代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.authorize);
    mPrefs = getPreferences(MODE_PRIVATE);
    loginPref = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
    String access_token = mPrefs.getString("access_token", null);
    long expires = mPrefs.getLong("access_expires", 0);
    if(access_token != null) {
        Singelton.mFacebook.setAccessToken(access_token);
    }
    if(expires != 0) {
        Singelton.mFacebook.setAccessExpires(expires);
    }

    Singelton.mFacebook.authorize(this, new String[] {"email","user_birthday"}, new DialogListener() {
        @Override
        public void onComplete(Bundle values) {
            SharedPreferences.Editor editor = mPrefs.edit();
            editor.putString("access_token", Singelton.mFacebook.getAccessToken());
            editor.putLong("access_expires", Singelton.mFacebook.getAccessExpires());
            editor.commit();
            SharedPreferences.Editor logEditor = loginPref.edit();
            logEditor.putBoolean("login", true);
            logEditor.commit();
            addUser();
        }

        @Override
        public void onFacebookError(FacebookError error) {
            errorHandler();
        }

        @Override
        public void onError(DialogError e) {
            errorHandler();
        }

        @Override
        public void onCancel() {
            Log.d("MyApp", "Facebook cancel");
        }
    });

}

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

Anh*_*arp 54

这可能是由于以下原因:

  1. 您没有连接到互联网
  2. 您尚未获得互联网访问权限(Manifest.xml)
  3. 您没有为应用使用正确的哈希键
  4. 您没有提供正确的应用ID

  • 对我来说,第二个建议有效(INTERNET许可).但这仅在未安装Facebook应用程序时才有意义.如果安装了Facebook应用程序,您将获得常规Facebook登录屏幕.这是为了防止找不到(或不更新)Facebook应用程序需要访问互联网,因为它回退到执行登录而不是使用SSO的WebView登录. (2认同)

Vin*_*noy 43

这只是意味着您没有在手机上安装Facebook应用程序.不要太担心它.

Facebook SDK for Android的工作方式是,无论何时您需要向Facebook发出请求,SDK都会检查您的设备上是否已安装Facebook应用程序.如果已安装,则通过应用程序发出请求.如果未安装该应用程序,它将自行获取数据.

  • 但我确实安装了Facebook应用程序(彻底安装adb).另外我有一个问题是使用模拟器登录Facebook - 它只是卡在Facebook空页(在Galaxy S上相同的代码工作正常).可能是什么问题? (6认同)