我完全不明白这个过程。我已经能够导航到Java SDK中包含keytool的文件夹。虽然我一直得到错误openssl不识别为内部或外部命令。问题是,即使我能让它工作,我该做什么,然后做什么?
当前回答
在你的应用程序中运行:
FacebookSdk.sdkInitialize(getApplicationContext());
Log.d("AppLog", "key:" + FacebookSdk.getApplicationSignature(this)+"=");
或:
public static void printHashKey(Context context) {
try {
final PackageInfo info = context.getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES);
for (android.content.pm.Signature signature : info.signatures) {
final MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
final String hashKey = new String(Base64.encode(md.digest(), 0));
Log.i("AppLog", "key:" + hashKey + "=");
}
} catch (Exception e) {
Log.e("AppLog", "error:", e);
}
}
然后看看日志。
结果应该以“=”结尾。
解是基于这里和这里。
其他回答
我遇到了完全相同的问题,我没有被要求提供密码,而且似乎我的密钥库文件路径错误。
事实上,如果keytool没有找到您设置的密钥存储库,它将创建一个密钥存储库,并提供错误的密钥,因为它没有使用正确的密钥。
一般的规则是,如果你没有被要求输入密码,那么你生成了错误的密钥。
Windows:
打开命令提示符并粘贴下面的命令
键盘出口,又名仙女座键盘 HOMEPATH % \调试机器人。keystore | openssl sha1 -binary | openssl base64
输入密码:android——>按Enter键 用你的开发者账号登录Facebook 去你的Facebook应用程序>设置>粘贴哈希键在“键哈希”选项>保存更改。 现在用Facebook登录/分享等测试你的android应用。
为了在你的本地计算机上生成你的密钥散列,运行Java的keytool实用程序(它应该在你的控制台路径上)针对Android调试密钥存储库。默认情况下,在你的home .android目录下)。在OS X上运行:
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
Windows操作系统使用:-
keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl base64
希望这对你有所帮助
参考开发者facebook网站
我也遇到了同样的问题,下面是我如何解决它的方法
keytool -list -alias androiddebugkey -keystore <project_file\android\app\debug.keystore>
步骤1->在您的系统中打开CMD
步骤2->C:\程序文件\Java\jdk1.6.0_43\bin>
步骤3->keytool -list -v -keystore C:\Users\leon\.android\debug. exeKeystore -alias androiddebugkey -storepass android -keypass android
你得到SHA1值点击这个链接你转换你的SHA1值为哈希键
我100%肯定这个链接会帮助你
推荐文章
- 如何在android中获得当前前景活动上下文?
- JavaFX应用程序图标
- Java:强/软/弱/幻影引用的区别
- 如何在Android中获取当前日期?
- 在序列化和反序列化期间JSON属性的不同名称
- 获取Android设备名称
- Gradle代理配置
- 在WebView中上传文件
- 加载HTML文件到WebView
- Android:为什么视图没有maxHeight ?
- 如何获得具有已知资源名称的资源id ?
- 在Android上将字符串转换为整数
- 为什么“System.out。”println“工作在Android?
- 在Java中什么时候使用可变参数?
- WebView显示err_cleartext_not_allowed尽管站点是HTTPS