Key Hash与android中的release key和debug keystore不同

时间:2014-04-29 11:31:44

标签: android facebook-sdk-3.0

我在我的应用程序中使用了一个facebook sdk。为此我使用debug.keystore和release keystore生成了密钥哈希。我在我的应用程序的开发者页面中添加了两个关键字。但我仍然得到像

这样的错误

com.facebook.http.protocol.ApiException:密钥哈希“LLSiRNj0hXH8BQpUJivI0UJz00Q”与任何存储的密钥哈希都不匹配。

但上面错误消息中给出的keyhash不属于我生成的任何keyhashes。我不明白这个keyhash是如何生成的以及它来自何处。

我还在开发者页面中添加了以下代码生成的keyhash。

错误消息中的keyhash与这3个keyhashes中的任何一个都不匹配(debug keystore,release keystore,keyhash by the code)

代码:

try {
        PackageInfo info = getPackageManager().getPackageInfo(
        "com.bloopit.activities", 
        PackageManager.GET_SIGNATURES);
          for (Signature signature : info.signatures) {
           MessageDigest md = MessageDigest.getInstance("SHA");
           md.update(signature.toByteArray());
           System.out.println("KeyHash : "+ Base64.encodeToString(md.digest(), Base64.DEFAULT));
            }

我只是想知道错误消息中的keyhash来自哪里?  我将keyhash添加到我的开发人员页面,它运行良好,但我不知道它是否是正确的过程。

会导致任何问题吗?

由于            } catch(NameNotFoundException e){          } catch(NoSuchAlgorithmException e){         }

1 个答案:

答案 0 :(得分:1)

适用于Linux

打开终端:

用于调试版本

keytool -exportcert -alias androiddebugkey -keystore debug.keystore | openssl sha1 -binary | openssl base64

您将从" .android"中找到 debug.keystore 文件夹从桌面复制并粘贴在桌面上并在命令上方运行

发布版本

keytool -exportcert -alias <aliasName> -keystore <keystoreFilePath> | openssl sha1 -binary | openssl base64

注意:确保在两种情况下都必须要求输入密码。如果它没有要求输入密码就意味着命令出错了。