Android Facebook身份验证总是提供关闭的\u登录\u失败的会话

Android Facebook身份验证总是提供关闭的\u登录\u失败的会话,android,facebook,android-facebook,Android,Facebook,Android Facebook,我正在尝试在我的应用程序中实现facebook。我已经做过几次了,没有任何问题。然而,这次我无法找出错误背后的原因 会话状态始终表示已关闭\u登录\u失败。我已经浏览了各种SO链接,这些链接回答了这个问题,但都谈到缺少API键,launchmode我的活动是singleinstance或worng/mis match key散列 但我必须说,我已经检查了所有这些问题,它们似乎不是问题所在 我试过: try { PackageInfo info = getActivity().ge

我正在尝试在我的应用程序中实现facebook。我已经做过几次了,没有任何问题。然而,这次我无法找出错误背后的原因

会话状态始终表示已关闭\u登录\u失败。我已经浏览了各种SO链接,这些链接回答了这个问题,但都谈到缺少API键,
launchmode
我的活动是
singleinstance
或worng/mis match key散列

但我必须说,我已经检查了所有这些问题,它们似乎不是问题所在

我试过:

try {
        PackageInfo info = getActivity().getPackageManager().getPackageInfo(
                "com.jam.app",
                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 (PackageManager.NameNotFoundException e) {

    } catch (NoSuchAlgorithmException e) {

    }
获取散列键,但无效。我还通过命令提示符尝试了keytool方法

我的清单文件具有API密钥,如下所示

Manifest.xml

    <meta-data
        android:name="com.facebook.sdk.ApplicationId"
        android:value="@string/app_id" />

    <activity
        android:name="com.facebook.LoginActivity"
        android:screenOrientation="portrait" />

我被困在过去的30天里。谁来帮忙。请务必让我知道我这边的任何细节是否有帮助。
提前感谢。

您能将尝试连接到Facebook时在logcat中遇到的完整步骤和错误粘贴到此处吗


如果您的Facebook应用程序处于开发模式,并且您尝试使用Facebook登录,但密钥哈希不匹配,则您正在使用的apk中的密钥哈希将与Facebook消息一起显示在Logcat中。在这之后,你可以将它粘贴到你的Facebook应用程序仪表板配置中,看看它现在是否工作。

wooow,终于解决了它。除非我创建了一个全新的项目,否则我不可能弄明白。我遵循了facebook themseleves提供的指南,它实际上引导我找到了解决方案

问题是,我已经将Facebbok作为一个模块导入,并将其添加到我的
build.gradle
as中的模块依赖项中

compile':facebook'

鉴于文件明确指出

您可能需要添加com.facebook.android:facebook android sdk:以构建.gradle依赖项并重建

而build.gradle现在看起来是这样的

compile 'com.facebook.android:facebook-android-sdk:3.21.1'
宾果游戏成功了

除上述内容外,我们还必须使用以下方法生成哈希键:

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

        } catch (NoSuchAlgorithmException e) {

        }

感谢Pratik帮了我的忙。谢谢:)

如果您关闭\u登录\u失败,那么您的Session.StatusCallback应该会附加一个异常对象。记录该异常并查看其内容。另外,发布打开会话的代码。