2013-10-24 2 views
7

werde ich zuerst feststellen, dass ich sehr neu in Java und Android-Entwicklung bin und möglicherweise etwas Einfaches verpasst haben könnte. Ich arbeite über das Facebook-Beispiel "sessionlogin". Es funktioniert, solange es keine Facebook App gibt. Wenn ich den Facebook-App installieren und versuchen, den Code auszuführen es mit dem Fehler der offensichtlichenUnknownError: ApiException: Schlüsselhash **** passt nicht ... wenn ich FB-App installiert habe

UnknownError: ApiException:Key hash BGyx5d0rMOuY9aQqZK4B9q04+no does not match any stored key hashes 

Das erste, was ich abgeschlossen versagt war der Schlüssel nicht übereinstimmen, aber warum? Ich bin verwirrt, warum die App ohne und was der Unterschied in der Hash-Taste für die FB-App ist? Verwendet es den Schlüssel meiner App? Benötigt die FB App eine signierte App für den Zugriff auf ihre Daten?

Für einige der Dinge, die ich getan habe, habe ich einen Code-Schnipsel hinzugefügt, um den Hash-Schlüssel am Anfang der App auszugeben. In allen Fällen wurde BGyx5d0rMOuY9aQqZK4B9q04 + no = angezeigt. Die App war im Debug-Modus festgefahren, also habe ich die App wie in dieser solution beschrieben signiert und veröffentlicht. Im Gegenzug war der Hash, den ich benutzte, egNZXZN1fDDeK7PNL + QzHDAKUsg = (auf FB, von der Konsole cmd ln zurückgegeben), aber das Snippet gab BW0xQ5kipPoWYWWJd1g3yaKCe6M = zurück, als die App tatsächlich lief.

Nach dem Lesen von Dutzenden von Artikeln und arbeiten etwa die Hälfte davon, habe ich viel Zeit verloren versuchen zu lernen, was ich falsch mache und ich bin jetzt, völlig ahnungslos. Wie kann man ein funktionierendes Beispiel bekommen? Fehle ich eine grundlegende Konfiguration?

Details:

  • Java 7 Release 25
  • gewinnen 8 64bit
  • ADT (Eclipse)
+0

Haben Sie versucht, den Schlüssel aus der Ausnahmebedingungsnachricht in Ihre App-Einstellungen hinzuzufügen? Die Ausnahme wird auf der Serverseite generiert, also ist sie die am meisten akkumulierte. –

+0

Wenn Sie Serverseite meinen, beziehen Sie sich auf die Einstellungen der FB-App? Wenn ja, habe ich das versucht. –

+0

OK, ich denke, es ist mir nicht klar aus Ihrer Frage, welche Hash-Schlüssel Sie zu Ihren App-Einstellungen hinzugefügt haben und mit welchen Sie Fehler sehen. Ich nehme an, dass Sie zwei verschiedene Schlüsselspeicher verwenden, einen für das Debuggen und einen für ein signiertes APK. Welche Methoden haben Sie verwendet, um die Schlüssel-Hashwerte für jeden Schlüsselspeicher zu generieren, und welche Fehler sind mit den einzelnen Fehlern verbunden, wenn Sie versuchen, sie auszuführen (z. B. funktioniert Ihre Debug-App, aber der signierte funktioniert nicht)? –

Antwort

1

Aus dem Abschnitt Fehlerbehebung this Führung, fügen Sie diese zu Ihrer onCreate:

try { 
      PackageInfo info = context.getPackageManager().getPackageInfo(
        "com.mypackage.name", 
        PackageManager.GET_SIGNATURES); 
      for (Signature signature : info.signatures) { 
       MessageDigest md = MessageDigest.getInstance("SHA"); 
       md.update(signature.toByteArray()); 
       Log.e("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT)); 
       } 
     } catch (NameNotFoundException e) { 

     } catch (NoSuchAlgorithmException e) { 

     } 

Fügen Sie den angezeigten keyHash hinzu. Es wird dem in Ihrem Fehlerprotokoll sehr ähnlich sein, aber mit/& - ersetzt

+0

Ich werde das überprüfen, es wird eine Weile dauern, bis ich dazu komme. Vielen Dank –

Verwandte Themen