Android w/Facebook SDK:密钥哈希错误突然出现

Android w/Facebook SDK:密钥哈希错误突然出现,android,facebook,facebook-graph-api,hash,facebook-android-sdk,Android,Facebook,Facebook Graph Api,Hash,Facebook Android Sdk,在Android应用程序中使用FacebookSDK时,使用无效哈希键错误似乎相当常见。我在这里找到的解决方案非常有效。我在我的应用程序中以编程方式创建了散列键,并将该键复制粘贴到我应用程序的Facebook开发者页面的界面中 尽管找到了这个和其他的解决方案,我还是找不到一个很好的解释为什么我会突然出现这个错误 当我使用下面的keystore命令时,我仍然得到了已经在我的Facebook开发者页面上注册的相同的散列键,到目前为止,它工作得很好(现在我有2个注册的散列键) 我没有改变开发环境,

在Android应用程序中使用FacebookSDK时,使用无效哈希键错误似乎相当常见。我在这里找到的解决方案非常有效。我在我的应用程序中以编程方式创建了散列键,并将该键复制粘贴到我应用程序的Facebook开发者页面的界面中

尽管找到了这个和其他的解决方案,我还是找不到一个很好的解释为什么我会突然出现这个错误

  • 当我使用下面的keystore命令时,我仍然得到了已经在我的Facebook开发者页面上注册的相同的散列键,到目前为止,它工作得很好(现在我有2个注册的散列键)

  • 我没有改变开发环境,即开发我的应用程序的PC

  • 就在我出现这个错误的几个小时前,我把这个应用程序交给了一个新注册的测试人员,他可以很好地登录到我的应用程序

  • 我目前只是在开发和测试,所以这个应用还没有公开

  • 在模拟器上,进进出出的唱歌仍然可以正常工作。只有在我自己的手机上,我用它在物理设备上测试应用程序,在我注销并想再次登录后,突然出现了这个错误

我只是想了解这里发生了什么,这样我就知道一旦我使用这个应用程序上市,我会期待什么以及该做什么。据我所知,有一个调试密钥和一个生产密钥。但即使新密钥是生产密钥,为什么会发生这种情况


为什么散列键(我使用
keytool
命令生成的散列键和我在应用程序中生成的散列键)不同?

这似乎是Facebook端的一个bug。过去24小时我一直在处理相同的问题。我尝试了一切,从创建一个新的Facebook应用程序,使用新的Facebook Id和应用程序机密(工作了一分钟,然后我又开始收到相同的错误消息),到删除设备上的应用程序,甚至更新Facebook SDK

解决方案

我最终通过复制错误消息中的keyhash并在开发人员控制台上用旧的keyhash替换它来克服它

您可以直接从Android monitor中的
debug
选项卡复制它

如果您不确定如何获取此信息,只需通过回调方法记录即可:

        ...
        @Override
        public void onError(FacebookException error) {
            Log.d(TAG, error.getMessage());
            // ...
        }

Ojoungwa,谢谢!正如我提到的,解决这个问题相当简单。只是我能找到任何关于为什么的可靠信息。
        ...
        @Override
        public void onError(FacebookException error) {
            Log.d(TAG, error.getMessage());
            // ...
        }