我完全不明白这个过程。我已经能够导航到Java SDK中包含keytool的文件夹。虽然我一直得到错误openssl不识别为内部或外部命令。问题是,即使我能让它工作,我该做什么,然后做什么?
当前回答
也有一个简单的解决方案。在你的应用中运行这个:
FacebookSdk.sdkInitialize(getApplicationContext());
Log.d("AppLog", "key:" + FacebookSdk.getApplicationSignature(this));
一个不需要FB SDK(基于这里的解决方案)的较长的例子:
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);
}
}
结果应该以“=”结尾。
其他回答
这就是我如何获得我的:
private class SessionStatusCallback implements Session.StatusCallback {
@Override
public void call(Session session, SessionState state, Exception exception) {
if (exception != null) {
new AlertDialog.Builder(FriendActivity.this)
.setTitle(R.string.login_failed_dialog_title)
.setMessage(exception.getMessage())
.setPositiveButton(R.string.ok_button, null)
.show();
}
因此,当您试图在没有密钥的情况下输入时,将会出现异常。Facebook在这个例外中加入了RIGHT键。你所要做的就是复制它。
步骤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%肯定这个链接会帮助你
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网站
很容易找到你的android项目的sha1
然后粘贴到这个网站上
对于get sha1只是
// vscode and my cmd
project-name/cd android && ./gradlew signingReport
// other
project-name/cd android && ./gradlew signingReport
推荐文章
- 什么是“android. r.b ayout.simple_list_item_1”?
- 将字符串转换为Uri
- 在Android中创建临时文件
- INSTALL_PARSE_FAILED_NO_CERTIFICATES错误是什么?
- 在Android中定义RelativeLayout视图的Z顺序
- jUnit中的字符串上的AssertContains
- 将JSON转换为映射
- Android Studio 3.0口味维度问题
- 在Java8中使用lambda仅在不为空时筛选值
- Java反射中的getFields和getDeclaredFields有什么区别
- 这个谷歌播放APK发布错误消息是什么意思?
- 如何检查一个文件夹是否存在?
- 如何创建在移动设备上呼叫电话号码的超链接?
- 错误:无法在intelliJ IDE中找到或加载主类
- 如何创建Android Facebook密钥哈希?