Java 未生成密钥哈希

Java 未生成密钥哈希,java,android,facebook,keytool,android-keystore,Java,Android,Facebook,Keytool,Android Keystore,我试图从我的Android应用程序中获取密钥哈希。Facebook SDK 3.0提供了以下代码: keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl base64 当我运行这个程序时,它首先会显示二进制:无错误;然后它要求输入密码,我输入的密码是android。按enter键后,它将在我期望的密码处返回空

我试图从我的Android应用程序中获取密钥哈希。Facebook SDK 3.0提供了以下代码:

keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl base64
当我运行这个程序时,它首先会显示
二进制:无错误
;然后它要求输入密码,我输入的密码是
android
。按enter键后,它将在我期望的密码处返回空白

我使用了上面提到的解决方案;这确实给了我一个密钥散列,但当我使用它时,所有会话都没有打开

我的java密钥工具存储在:

C:\Program Files\Java\jre7\bin
F:\openssl\bin
OpenSSL存储在:

C:\Program Files\Java\jre7\bin
F:\openssl\bin
当我在Windows的MD中运行它时,我给出了正确的文件路径


请帮我解决这个问题

Windows总是有点毛茸茸的,很难找到键盘工具,我建议另一种选择。在应用程序的
onCreate
方法中运行以下代码:

   try {
        PackageInfo info = getPackageManager().getPackageInfo(
            "COM.YOUR.PACKAGE.NAME", 
            PackageManager.GET_SIGNATURES);
        for (Signature signature : info.signatures) {
            MessageDigest md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            Log.d("My Keyhash", Base64.encodeToString(md.digest(), Base64.DEFAULT));
        }
    } catch (Exception e) {
        Log.e("My Keyhash", e.toString());
    } 
并观察logcat中的日志输出,以获取您的keyhash。确保将上面的包名替换为您自己的包名

编辑:


密钥哈希已正确上载,但会话仍未打开。。。在登录facebook时,它首先通过应用程序请求我的许可,然后在我接受后弹出“com.facebook.facebookexception:Session Provided to a request in unopened state”

确保片段/活动中包含以下代码:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    uiHelper.onActivityResult(requestCode, resultCode, data);
}

你可能把密码弄错了

看看我的答案


希望这能有所帮助

谢谢。。密钥散列已生成,但我已更新我的应用程序,但会话仍然无法工作。如果需要帮助(例如堆栈跟踪、错误消息),则必须提供更多详细信息。密钥散列已正确上载,但会话仍无法打开。。。在登录facebook时,它首先通过应用程序请求我的许可,然后在我接受一个弹出窗口后显示“com.facebook.facebookexception:Session Provided to a request in unopened state”是该代码的一个版本存在。。。问题是,即使是facebook 3.0 SDk中提供的示例应用程序也无法运行,并出现上述错误。我会尝试在FB设置中从授权应用程序中删除该应用程序,然后重新验证该应用程序。除此之外,您的应用程序似乎存在配置问题,因为我没有听到示例应用程序出现此问题的报告,我也无法重新编程。这里还有另一个问题: