在Android中生成keyhash时出错
我正在尝试为Facebook生成密钥哈希。我已经安装了openssl,并在Facebook上注册了我的应用程序。为了生成密钥散列,我使用以下命令在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
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
我已经为此创建了一个工具,看看这个:如果我帮助了你,请投票给我的答案。