在Android中生成keyhash时出错

在Android中生成keyhash时出错,android,facebook,Android,Facebook,我正在尝试为Facebook生成密钥哈希。我已经安装了openssl,并在Facebook上注册了我的应用程序。为了生成密钥散列,我使用以下命令 C:\Program Files\Java\jdk1.6.0\bin>keytool -exportcert -alias androiddebugkey -keystore C:\Documents and Settings\User\.android\debug.keystore|C:\OpenSSL\bin shal -binary|ope

我正在尝试为Facebook生成密钥哈希。我已经安装了openssl,并在Facebook上注册了我的应用程序。为了生成密钥散列,我使用以下命令

C:\Program Files\Java\jdk1.6.0\bin>keytool -exportcert -alias androiddebugkey -keystore C:\Documents and Settings\User\.android\debug.keystore|C:\OpenSSL\bin shal -binary|openssl base64
这给了我这样的回答:

'C:\OpenSSL\bin' is not recognized as an internal or external command, operable program or batch file.

错误消息的含义是什么?如何解决问题?

错误消息的第一个命令的关键部分是:

|C:\OpenSSL\bin shal -binary|openssl base64
第一个
|
意味着前一个命令的输出(可能也有问题)应该被发送到
C:\OpenSSL\bin
,但是shell抱怨
C:\OpenSSL\bin
不是一个可执行文件,它很可能是一个目录

也许应该这样写:

| C:\OpenSSL\bin\sha1 -binary | C:\OpenSSL\bin\openssl base64
您的第一个命令段也可能有问题:

C:\Program Files\Java\jdk1.6.0\bin>keytool -exportcert ...
应该是反斜杠:

C:\Program Files\Java\jdk1.6.0\bin\keytool -exportcert ...

您不需要安装openSSL。只需解压缩并将其存储在C驱动器中。制作debug.keystore的副本并将其存储在另一个驱动器中。比如说开车。试试这个

C:\Program Files\Java\jdk1.6.0\bin>keytool-exportcert-alias androiddebugkey-keystore“D:\NewFolder\debug.keystore”|“C:\OpenSSL\OpenSSL--0.9.8k_WIN32\bin\OpenSSL”shal1-binary“|”C:\OpenSSL\OpenSSL--0.9.8k_WIN32\bin\OpenSSL”base64


请确保更改您的OPENSSL版本。我的版本是0.9.8。您的版本可能不同

您可以从以下位置下载并安装OPENSSL:

在我的例子中,由于某些依赖关系,OpenSSL没有正确安装,我也面临同样的问题。 解决方案:查找提取openSSL的目录(在我的示例中为C:\openSSL-Win64)

并使用带有openSSL绝对路径的命令

keytool -exportcert -alias androiddebugkey -keystore C:\Users\nnagella\.android\debug.keystore | C:\OpenSSL-Win64\bin\openssl sha1 -binary | C:\OpenSSL-Win64\bin\openssl base64

我已经为此创建了一个工具,看看这个:如果我帮助了你,请投票给我的答案。