我目前正在做一个关于如何通过谷歌+帐户登录的教程,但我陷入了第一步。我正在谈论的教程是tutorial。我有一个打印屏幕显示我所做的但它不起作用这里看起来有什么问题?有没有其他方法可以在不使用命令提示符的情况下生成相同的文件
更新
能够运行该行,但它返回的结果与教程中返回的结果不同
答案 0 :(得分:2)
try {
PackageInfo info = getPackageManager().getPackageInfo(
"com.example.yourpackagename",
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) {
}
我知道这个问题已经得到解答,但这就是我找到默认密钥库的签名的方式。在Eclipse中,如果你去Windows - >偏好 - > Android - >构建
答案 1 :(得分:0)
如果你正在使用eclipse,你可以在apk导出向导的最后一页获得SHA-1(即,在编辑框和完成按钮之间给出)。
您还可以通过eclipse中提供的自定义密钥库选项添加任何密钥库。将密钥库添加为自定义密钥库后,还会给出SHA-1。
答案 2 :(得分:0)
请转到jdk bin路径
cd C:\Program Files\Java\jdk1.6.0_22\bin
然后
keytool -list -v -keystore "C:\Users\mmanlapig\.android\debug.keystore"
或强>
尝试此代码。它将在您的日志cat中返回哈希键。并且不要忘记更改包名称
try {
PackageInfo info = context.getPackageManager().getPackageInfo(
"com.example.package", PackageManager.GET_SIGNATURES); //Your package name here
for (Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
Log.v("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
}
} catch (NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}
答案 3 :(得分:0)
使用以下步骤在eclipse上安装keytool然后你可以轻松生成SHA-1
http://keytool.sourceforge.net/update
在eclipse中采取帮助 - >安装新软件。将上面的url复制到它并安装它。然后在eclipse上有一个选项keytool。选择keytool->打开密钥库。浏览debug.keystore文件的路径并将密码设为android。