[Android] 無法找到com.facebook.katana.provider.AttributionIdProvider的提供者信息


Answers

這只是意味著你的手機上沒有安裝Facebook應用程序。 不要太擔心。

Facebook SDK for Android的工作原理是,無論何時您需要向Facebook發送請求,SDK都會檢查Facebook應用程序是否已經安裝在您的設備上。 如果安裝,請求是通過應用程序。 如果應用程序沒有安裝,它自己提取數據。

Question

任何人都知道這個錯誤是什麼意思? 每當我連接到我的Android應用程序到Facebook(通過模擬器),我得到它在LogCat外殼。

負責授權功能的代碼:

@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);
}



不要忘記重寫onActivityResult並檢查它是否被調用(例如,如果使用片段)

PS(也許這將是有用的其他人,我遇到了這個麻煩,當使用解析Facebook的登錄=)




只需將以下權限添加到AndroidManifest.xml

<uses-permission android:name="android.permission.SET_DEBUG_APP"/>