Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 会话状态已关闭\u登录\u失败_Android_Facebook Android Sdk_Facebook Sdk 3.0 - Fatal编程技术网

Android 会话状态已关闭\u登录\u失败

Android 会话状态已关闭\u登录\u失败,android,facebook-android-sdk,facebook-sdk-3.0,Android,Facebook Android Sdk,Facebook Sdk 3.0,我正在facebook android sdk上工作。我正在使用以下代码获取哈希键。现在我在登录Facebook后获得错误会话状态关闭\u登录\u失败 参考: 好的,我的孩子们!请听此解决方案并保存 转到此解决方案并仔细遵循以下步骤: 现在请密切注意: 您必须使用Java1.6来完成它 在我的例子中,我按照他在我的原始密钥库文件中的建议做了两次,也不确定这是否正确 这是必要的 最后但并非最不重要的是: 转到android开发者网站,按Status和Reviews 公开你的应用程序并打开cham

我正在facebook android sdk上工作。我正在使用以下代码获取哈希键。现在我在登录Facebook后获得错误会话状态关闭\u登录\u失败

参考:


好的,我的孩子们!请听此解决方案并保存

转到此解决方案并仔细遵循以下步骤:

现在请密切注意: 您必须使用Java1.6来完成它

在我的例子中,我按照他在我的原始密钥库文件中的建议做了两次,也不确定这是否正确 这是必要的

最后但并非最不重要的是: 转到android开发者网站,按Status和Reviews 公开你的应用程序并打开champein


(我真的很讨厌face)

密钥散列的唯一更改方式是当签名密钥更改时。而这永远不会单独发生。如果您仍然使用默认的
debug.keystore
通过USB进行开发和部署,并且删除它并重新创建一个新的密钥库,这是我能想到的唯一方案。而且,不幸的是,在密钥散列发生变化的情况下,新的密钥散列必须在Facebook开发者控制台中手动更新。没有这样的功能(也有很好的理由)允许你的应用程序(无论平台如何)在你的FB Dev控制台中编辑/修改详细信息。我的实际问题是每次会话状态都等于false。如果你遇到与该问题相同的问题,你使用的代码将修复它。话虽如此,我先前的评论仍然有效。但当facebook上的散列键被自动更改时,我的应用程序就不起作用了:正如前面提到的,它自己不会更改。哈希键是Facebook上的更改,或者通过其他方式从android应用程序以编程方式设置哈希键:无法完成。您必须在您的Facebook开发者控制台中手动更新新的哈希键。好的。我将尝试删除调试的建议。keystoreNO!我不是建议/要求你删除任何内容!!我列出了密钥散列将在何时更改的可能性!!同样,不要删除任何内容。
try {
        PackageInfo info = getPackageManager().getPackageInfo(
                "your.root.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) {

    }