2014-06-20 134 views
8

我在Facebook上创建了一个应用程序。我已经正确添加了keyhash,应用运行良好,但是当我今天来到并尝试再次运行它时,它给了我这个错误。 enter image description here无效密钥散列密钥散列不匹配任何存储的密钥散列

这是第二次发生。 Previsouly当我得到这个错误,我删除了应用程序,并再次添加它,它开始再次工作和offcourse我不能做一遍又一遍。

还有一件事,他在错误中提到的关键散列不一样,我在应用程序中添加,如果我去应用程序设置关键散列在那里是正确的。

+1

_ZerO_,这不是一个真正的编码问题。 @ umerk44:在此问题的答案更新之前尝试解决方案**:http://stackoverflow.com/q/14875027/450534。如果这不起作用,请在UPDATE中尝试解决方案1。这两种解决方案都需要与** Release Key **一起使用。不是默认的调试密钥。我假设您的应用已部署在Google Play上。如果没有,请使用您的默认调试密钥。 –

回答

4

删除应用程序,并尝试通过以下这个 method创建一个新的哈希键!

1

你要做一次以下步骤: - 在Facebook的网站(developers.facebook.com)

  • 删除文件debug.keystore上

    1. 删除应用程序。
    2. 生成一个新的密钥(由再次运行你的应用程序)
    3. 创建于developers.facebook.com一个新的应用程序,并添加新的散列键
    4. 重新运行你的应用程序
    5. 更迭!

    等详细信息见下面的链接: -

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

  • +2

    我曾尝试过这种方法,一旦它适用于我。但我必须一次又一次地做到这一点。我的意思是这不是一个解决方案。 – umerk44

    +0

    @ umerk44这意味着你在创建hashkey时做了错误的事情,所以要正确地做。祝您好运 – duggu

    2

    使用此版本之一:openssl-0.9.8e _X64.zip

    你应该使用openssl-0.9.8k_X64.zip

    不同的是ķË

    ,并生成密钥再次CMD

    1

    使用 keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl base64添加以下代码到的onCreate(): *不要忘记更改包名称。

    try { 
        PackageInfo info = getPackageManager().getPackageInfo(
          "com.yours.package", 
          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) { 
    
    } 
    

    来源:https://developers.facebook.com/docs/android/getting-started/

    +0

    此代码被赋予Debug Key not Sign键。 – Destro

    +0

    优秀 - 这是实际工作的人(cmd生成的密钥不适合我) – galaxigirl

    3

    没有必要一次又一次地删除Facebook的开发者网站的应用程序。 什么你需要的是去你的终端(Mac或Linux操作系统),然后键入:

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

    而且窗口的用户打开CMD,输入:

    keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl 
    base64 
    

    这一点,你会被要求后“输入密钥库密码:“,为此请记住只输入android。现在在Facebook开发人员网站上使用此密钥哈希(注意:此密钥哈希将与您错误获取的密钥哈希相同)。 大多数人都要求从Facebook开发者网站上删除应用程序,然后重新制作新应用程序,但相信我这实际上就是你必须要做的。

    +0

    所以你的意思是说,这只发生调试?我已经有两个键在我的Facebook设置中添加了调试和释放密钥,但尽管我收到了此消息 – batmaci

    +0

    我只是为了调试而面临此问题。你确定你从上面的命令得到的关键是你在facebook设置中的关键。钥匙也应该与你错误的钥匙匹配。@ batmaci –

    -1

    这个错误的唯一原因是每个开发环境的哈希键不同,这意味着如果您在不同的计算机上工作,每台PC/Mac将生成自己的哈希键。

    NOW SOLUTION:

    两个简单的步骤就可以解决这个错误,只是写在你的Facebook开发者帐户的哈希键等安装的图像:

    第一步:你会看到这里HASH基调的帽子键然后按照下一步 enter image description here

    最后一步:在重点哈希领域写下复制哈希键。像 enter image description here

    无需删除或重新配置应用程序。

    谢谢。

    0

    嗨在我的情况下,这是生成生产释放键的问题。释放apk来玩商店需要你生成释放密钥。 有关详细信息,请通过Facebook访问此link