it-swarm.com.de

Es wurde keine Provider-Info für com.facebook.katana.provider.AttributionIdProvider gefunden

Weiß jemand, was dieser Fehler bedeutet? Ich bekomme es jedes Mal in der LogCat Shell, wenn ich mit meiner Android-Anwendung eine Verbindung zu Facebook (über den Emulator) herstelle.

Der Code, der für die Autorisierung der Funktionalität verantwortlich ist:

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

Dies kann aus folgenden Gründen geschehen:

  1. Sie sind nicht mit dem Internet verbunden
  2. Sie haben keine Erlaubnis für den Internetzugang erteilt (Manifest.xml)
  3. Sie haben kein korrektes hashkey für die App verwendet
  4. Sie haben keine korrekte App-ID angegeben 
54
AnhSirk Dasarp

Es bedeutet nur, dass Sie die Facebook-App nicht auf Ihrem Telefon installiert haben. Machen Sie sich nicht zu viele Sorgen.

Das Facebook SDK für Android funktioniert so, dass das SDK immer dann überprüft, ob die Facebook-App bereits auf Ihrem Gerät installiert ist, wenn Sie eine Anfrage an Facebook stellen müssen. Wenn es installiert ist, erfolgt die Anforderung über die App. Wenn die App nicht installiert ist, ruft sie die Daten selbst ab.

41
Vinay S Shenoy

Wenn das Problem von niemandem durch die vier Lösungen behoben wurde, kann dies hilfreich sein. Ich habe diese Fehlermeldung erhalten, als ich mit Fragments die Facebook-Anmeldung implementierte. Ich verwendete das Standard-Fragment und nicht die Support-Bibliothek v4 Fragmente. Nachdem ich zur Support-Bibliothek Fragment gewechselt hatte, war mein Problem weg. Dies mag für meine Situation einzigartig sein, aber ich dachte, ich würde es nur für den Fall teilen. Vergessen Sie auch nicht, das Fragment festzulegen, wenn Sie die Login-Button-Methode verwenden.

myFacebookLoginButton.setFragment(this); //Assuming you're in a Fragment class
4
Jraco11

Fügen Sie einfach die folgende Berechtigung zur AndroidManifest.xml hinzu

<uses-permission Android:name="Android.permission.SET_DEBUG_APP"/>
1
M.ES

Vergessen Sie nicht, onActivityResult zu überschreiben und zu prüfen, ob es aufgerufen wurde (z. B. wenn Sie Fragmente verwenden) 

PS (vielleicht wird es für andere nützlich sein, ich hatte Probleme mit parse facebook login =)

1
Penzzz

Wie @ Vinay-S-Shenoy sagte, geschieht dies, wenn die Facebook-App nicht auf dem Telefon oder dem Simulator installiert ist. Um diesen Fehler zu vermeiden, prüfe ich, ob die Facebook-App installiert ist, bevor Sie die Methode facebook.authorize aufrufen. Falls die Facebook-App nicht installiert ist, informiere ich den Benutzer darüber.

public boolean isFacebookAvailable() {

    Intent intent = new Intent(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_TEXT, "Test; please ignore");
intent.setType("text/plain");

    final PackageManager pm = this.getApplicationContext().getPackageManager();
    for(ResolveInfo resolveInfo: pm.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY)){
        ActivityInfo activity = resolveInfo.activityInfo;
        // Log.i("actividad ->", activity.name);
        if (activity.name.contains("com.facebook.katana")) {
            return true;
        }
    }
    return false;
}
1
vrunoa

Für mich (aber ich arbeite mit Ionic) war es wegen eines Bildfehlers/Vorlagenfehlers vor dem Start:

ionic cordova build Android

Vielleicht kann es anderen helfen ...

0
Adrien V