2014-09-24 8 views
7

Ich baue eine App, die Facebook Login und Authentifizierung erfordert.toByteArray() wird nicht für Facebook Login gelöst

Ich folge

https://developers.facebook.com/docs/android/getting-started#create-app

ich diesen Fehler habe: wenn ich die Facebook-Login-Button getroffen:

enter image description here

Mehrere Beiträge sagen, dass dieser Code den Fehler beheben sollte

Key hash doesn't match while facebook login in android

:

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

     } 

     catch (NoSuchAlgorithmException e) 
     { 

     } 

jedoch die toByteArray() -Methode nicht aufgelöst werden kann!

enter image description here

Wie kann ich diesen Fehler beheben und die einfache Facebook Login für meine Anwendung erreichen?

+0

siehe ich meine Antwort aktualisieren –

Antwort

6
from Logcat you can get hash key of facebook please do copy from logcat which having Logcat tag "KeyHash" and put it in your project on developer.facebook site 

enter image description here

import android.content.pm.Signature; 

     try { 
     PackageInfo info = getPackageManager().getPackageInfo(
       **"do not forgot to your package name"**, PackageManager.GET_SIGNATURES); 
     for (Signature signature : info.signatures) { 
      MessageDigest md = MessageDigest.getInstance("SHA"); 
      md.update(signature.toByteArray()); 
      Log.d("KeyHash:", 
        Base64.encodeToString(md.digest(), Base64.DEFAULT)); 
     } 
    } catch (NameNotFoundException e) { 

    } catch (NoSuchAlgorithmException e) { 

    } 



OR 

1. for Android default keystore : add this to in your terminal 
  
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64 

2. for signed keystore 

keytool -exportcert -alias aliasname -keystore keystorename | openssl sha1 -binary | openssl base64 
+0

Wie kann das implementiert werden? –

+0

Sie haben es bereits implementiert, siehe Log.d ("KeyHash:", Base64.encodeToString (md.digest(), Base64.DEFAULT)); Also, Sie können sehen, Ihr logcat, die Tag "KeyHash" kopieren Sie den Wert –

+0

jetzt ich denke, Sie haben meinen Punkt –