Android 应用程序配置错误,无法使用释放密钥哈希登录Facebook
我已将Facebook整合到我的应用程序中。我用调试密钥哈希在emulator和我的设备HTC中测试了我的应用程序。当我为我的签名APK尝试释放密钥哈希时,我的设备HTC One X中总是出现“应用程序在Facebook登录时配置错误”错误 keytool-exportcert-alias android-keystore C:\android2012\android.keystore | openssl sha1-binary | openssl base64 我使用上述命令生成释放密钥散列。别名是“android”。它在输入密码后成功生成密钥哈希。这个密钥散列被输入到Facebook仪表板,我试图在我的签名APK中访问,但失败了Android 应用程序配置错误,无法使用释放密钥哈希登录Facebook,android,facebook,Android,Facebook,我已将Facebook整合到我的应用程序中。我用调试密钥哈希在emulator和我的设备HTC中测试了我的应用程序。当我为我的签名APK尝试释放密钥哈希时,我的设备HTC One X中总是出现“应用程序在Facebook登录时配置错误”错误 keytool-exportcert-alias android-keystore C:\android2012\android.keystore | openssl sha1-binary | openssl base64 我使用上述命令生成释放密钥散列。
有人能帮忙吗?这一错误持续了几天。非常感谢 为什么在您测试它时它可以在模拟器上工作,甚至在设备上工作,是因为在从eclipse进行测试时,您使用的是debug.keystore而不是发布密钥 按照下面两种解决方案中的一种去做,你就可以开始了 解决方案1: 请尝试此链接:。我发现使用Facebook的方法获取散列密钥并不总是像广告宣传的那样有效。然而,这个链接有一种不同的获取散列键的方法,并且几乎总是有效的 解决方案2: 也就是说,我总是发现最简单的事情就是,让Facebook SDK告诉你你的哈希键是什么。这要简单得多,不会超过几分钟 步骤1: 在Facebook SDK中,找到Util.java类。在这种情况下,请更改以下内容:
private static boolean ENABLE_LOG = false;
致:
步骤2:
创建一个新的签名APK,传输到您的设备并安装。如果已经安装,自然会提示
步骤3:在DDMS(Logcat)运行且设备连接到计算机的情况下,运行应用程序并继续查找密钥不匹配警告。该警告具有实际的哈希键。复制该密钥,转到您的Facebook开发者页面,并将新密钥添加到列表中。我被困在这个问题上大约一周了!我想为我自己的密钥库而不是debug.keystore生成哈希键。我在网上尝试了所有可能的解决方案 我终于有了一个奇怪的理解: keytool-exportcert-alias androiddebugkey-keystore[PATH_TO_keystore]\debug.keystore |[PATH_TO_OPENSSL]\OPENSSL sha1-binary |[PATH_TO_OPENSSL]\OPENSSL base64 使用这种方法,我被要求输入密码,并收到一个哈希键(错误的) 第二种方法分三步提出 keytool-exportcert-alias androiddebugkey-keystore[PATH_TO_keystore]\debug.keystore>[PATH_TO_OPENSSL]\debug.txt [PATH_TO_OPENSSL]\OPENSSL sha1-binary[PATH_TO_OPENSSL]\debug.txt>[PATH_TO_OPENSSL]\bin\debug_sha.txt [PATH\u TO\u OPENSSL]\OPENSSL base64-in[PATH\u TO\u OPENSSL]\bin\debug\u sha.txt>[PATH\u TO\u OPENSSL]\bin\debug\u base64.txt 使用这种方法,我还被要求输入密码,并收到一个不同的哈希键=正确的一个
请注意,将别名替换为“androiddebugkey”,将密钥库替换为“debug.keystore”出现此问题可能是因为我们使用的是“openssl-0.9.8k”版本。尝试从以下链接使用不同版本的“openssl-0.9.8e”或“openssl-0.9.8d”:
这个问题不会出现。Siddharth的解决方案2有时在Facebook SDK 3.0以后的版本中不可能实现。 使用下面的代码在你的应用程序本身中toast右键散列
try {
PackageInfo info = getPackageManager().getPackageInfo("com.package.mypackage", PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
String sign=Base64.encodeToString(md.digest(), Base64.DEFAULT);
Log.e("MY KEY HASH:", sign);
Toast.makeText(getApplicationContext(),sign, Toast.LENGTH_LONG).show();
}
} catch (NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}
用您的包名替换com.package.mypackage…我已经有两个月的这个问题了。我的密钥哈希值一直挂接到9。今天我终于找到了简单的解决方案: 第1步: 在手机上安装从facebook开发者页面下载的facebook sdk。不要安装普通的facebook应用程序。确保你可以登录facebook。然后注销 第二步: 将应用程序与最终发布密钥导出为apk,就像将其上载到playstore时一样 第三步: 通过usb电缆或U盘将Apk文件放在手机上 第4步: 使用文件管理器安装应用程序:例如 第五步: 启动你的应用程序并尝试登录facebook。将打开一个对话框,告诉您:“在facebook开发者控制台中找不到密钥 第6步: 写下钥匙 第7步: 将其放入您的facebook开发者控制台并保存。现在您完成了。任何下载您的应用程序(使用以前使用的密钥库发布)的人都可以登录facebook
享受要获取openssl路径,请执行以下步骤:
@user1808006:很高兴能帮上忙。:-@Niravsha:我很高兴它很有用。:-)布尔值在Util.java中不存在。也许最近有所改变?@billynomates:我相信从3.X Beta SDK开始就有了。我还没有尝试过新的版本。但是随着7月21日强制更新的到来,我应该很快就知道了。我确信他们在那里留下了一些东西。我必须找到它。我会尽快更新。解决方案1非常完美!!非常感谢!
try {
PackageInfo info = getPackageManager().getPackageInfo("com.package.mypackage", PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
String sign=Base64.encodeToString(md.digest(), Base64.DEFAULT);
Log.e("MY KEY HASH:", sign);
Toast.makeText(getApplicationContext(),sign, Toast.LENGTH_LONG).show();
}
} catch (NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}