Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hashkey不匹配android facebook应用程序_Android_Facebook_Sdk_Key_Mismatch - Fatal编程技术网

Hashkey不匹配android facebook应用程序

Hashkey不匹配android facebook应用程序,android,facebook,sdk,key,mismatch,Android,Facebook,Sdk,Key,Mismatch,下载了最近的facebook android sdk 3.7,我尝试在sdk中运行示例应用程序。当我尝试helloFacebookSample应用程序时,我遇到了哈希键问题。我在网上搜索,得到了正确的hashkey,即dsygoiijukyhy/duT1e72ZHl5U= 我的应用程序显示“hashkey未存储”错误。当我记录我的示例应用hashkey时,我发现发生了奇怪的事情 我正在使用以下代码: Toast.makeText(getApplicationContext(),Base64.en

下载了最近的facebook android sdk 3.7,我尝试在sdk中运行示例应用程序。当我尝试helloFacebookSample应用程序时,我遇到了哈希键问题。我在网上搜索,得到了正确的hashkey,即
dsygoiijukyhy/duT1e72ZHl5U=

我的应用程序显示“hashkey未存储”错误。当我记录我的示例应用hashkey时,我发现发生了奇怪的事情

我正在使用以下代码:

Toast.makeText(getApplicationContext(),Base64.encodeToString(md.digest(), Base64.DEFAULT), Toast.LENGTH_LONG).show();
                Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));

                Toast.makeText(getApplicationContext(),Base64.encodeToString(md.digest(), Base64.DEFAULT), Toast.LENGTH_LONG).show();
同一段代码显示不同的哈希键

DSygOIIJUkYyHy/duT1e72ZHl5U=

2jmj7l5rSw0yVb/vlWAYkK/YBwk=
当我试图发布状态时,它会显示一个不同的hashkey

DSygOIIJUkYyHy_duT1e72ZHl5U=

我已经在我的示例应用程序中存储了所有三个hashkey,但它仍然显示此错误。

当应用程序生成的hashkey与您在facebook开发者网站中放置的hashkey不匹配时,通常会出现此问题。尝试以编程方式生成hashkey,并将其放在开发人员站点中。希望此解决方案有帮助

当你的应用程序生成的哈希键与你放在facebook开发者网站上的哈希键不匹配时,通常会出现此问题。尝试以编程方式生成hashkey,并将其放在开发人员站点中。希望此解决方案有帮助

同样的问题也发生在我身上,我不知道出了什么问题,然后我意识到我用来生成密钥散列的密钥存储是另一个密钥存储,如果你签署了你的应用程序,你将得到一个.jks密钥存储文件,你必须在生成密钥散列的代码中指定该文件的路径,如

keytool -list -v -keystore yourkeystore_path/yourkeystore.jks -alias your_aliase_name 
密钥库文件的名称和别名应与您在应用程序上签名时的名称相同,然后确保您获得正确的代码

然后还有一个解决方法,就是写下错误中显示的代码,并将其放在keyhash字段中,简单如下


希望它有帮助

同样的问题也发生在我身上,我不知道出了什么问题,然后我意识到我用来生成密钥散列的密钥存储是另一个密钥存储,如果你签署了你的应用程序,你将得到一个.jks密钥存储文件,你必须在生成密钥散列的代码中指定该文件的路径,如

keytool -list -v -keystore yourkeystore_path/yourkeystore.jks -alias your_aliase_name 
密钥库文件的名称和别名应与您在应用程序上签名时的名称相同,然后确保您获得正确的代码

然后还有一个解决方法,就是写下错误中显示的代码,并将其放在keyhash字段中,简单如下


希望这对你有所帮助

如果你遵循这一点,它应该是正确的。我在facebook上创建了一个新的应用程序,并再次重复了同样的过程。它现在正在工作。但是我仍然不明白为什么Base64.encodeToString(md.digest(),Base64.DEFAULT)会给我两个不同的值。你得到了正确的哈希键吗?是的,我得到了。我不明白为什么在run two time向我显示两个不同的哈希键时,以编程方式Base64.encodeToString(md.digest(),Base64.DEFAULT)显示两个不同的哈希键。如前所述,这一行为我们提供的hashkey将保持不变,无论我运行这一行多少次。但它显示的是原始的hashkey,然后是另一个hashkey。如果你按照这个操作,它应该是正确的。我在facebook上创建了一个新的应用程序,并再次重复了相同的过程。它现在正在工作。但是我仍然不明白为什么Base64.encodeToString(md.digest(),Base64.DEFAULT)会给我两个不同的值。你得到了正确的哈希键吗?是的,我得到了。我不明白为什么在run two time向我显示两个不同的哈希键时,以编程方式Base64.encodeToString(md.digest(),Base64.DEFAULT)显示两个不同的哈希键。如前所述,这一行为我们提供的hashkey将保持不变,无论我运行这一行多少次。但它显示的是原始的hashkey,然后是另一个hashkey