Android Android 设备上的 Facebook 集成无效密钥哈希错误,但在模拟器上工作正常
Android Facebook Integration Invalid Key hash error on Android device but working fine on Emulator
当我 运行 我的 Android 应用程序在我的 android 设备上时,当我第一次点击 Continues with Facebook 时它工作正常button.When 我在注销后尝试再次登录,但显示错误 "Invalid Key has" 密钥与任何存储的密钥散列都不匹配。我已经重新生成密钥哈希并在 facebook 上替换了新密钥。但是还是没有结果。
First time I had easily logged-in, But after logged out again I'm trying to Continues with Facebook but it is showing an error message "Invalid Key has":
但同一个应用程序 运行在 Emulator 上完全没问题。为什么它不能在我的设备上运行?
您好,将此代码放入任何可访问的 activity 的 onCreate 方法中,以在控制台中打印哈希键,并使用应用程序更新您的 Facebook 链接帐户中的哈希键。
try {
PackageInfo info = getPackageManager().getPackageInfo(
"com.facebook.samples.loginhowto",
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) {
}
这是您需要做的 -
从 Code 下载 openSSL 并将其解压缩。在 C:/ 中创建一个文件夹 - OpenSSL 并将提取的代码复制到此处。
检测debug.keystore 文件路径。如果你没有找到,那么在 C:/ 中搜索并在下一步中使用命令中的路径。
检测您的 keytool.exe 路径并在命令提示符中转到该目录/并在 1 行中 运行 此命令-
$ keytool -exportcert -alias androiddebugkey -keystore "C:\Documents and Settings\Administrator.android\debug.keystore" | "C:\OpenSSL\bin\openssl" sha1 -binary |"C:\OpenSSL\bin\openssl" base64
它会要求输入密码,输入android就可以了。你会得到一个密钥哈希
当我 运行 我的 Android 应用程序在我的 android 设备上时,当我第一次点击 Continues with Facebook 时它工作正常button.When 我在注销后尝试再次登录,但显示错误 "Invalid Key has" 密钥与任何存储的密钥散列都不匹配。我已经重新生成密钥哈希并在 facebook 上替换了新密钥。但是还是没有结果。
First time I had easily logged-in, But after logged out again I'm trying to Continues with Facebook but it is showing an error message "Invalid Key has":
但同一个应用程序 运行在 Emulator 上完全没问题。为什么它不能在我的设备上运行?
您好,将此代码放入任何可访问的 activity 的 onCreate 方法中,以在控制台中打印哈希键,并使用应用程序更新您的 Facebook 链接帐户中的哈希键。
try {
PackageInfo info = getPackageManager().getPackageInfo(
"com.facebook.samples.loginhowto",
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) {
}
这是您需要做的 -
从 Code 下载 openSSL 并将其解压缩。在 C:/ 中创建一个文件夹 - OpenSSL 并将提取的代码复制到此处。
检测debug.keystore 文件路径。如果你没有找到,那么在 C:/ 中搜索并在下一步中使用命令中的路径。
检测您的 keytool.exe 路径并在命令提示符中转到该目录/并在 1 行中 运行 此命令-
$ keytool -exportcert -alias androiddebugkey -keystore "C:\Documents and Settings\Administrator.android\debug.keystore" | "C:\OpenSSL\bin\openssl" sha1 -binary |"C:\OpenSSL\bin\openssl" base64
它会要求输入密码,输入android就可以了。你会得到一个密钥哈希