我的Android上出现“无效密钥哈希”错误,即使我的应用程序正在制作中,并且facebook应用程序设置为公开。如果我把密钥哈希放到Facebook设置中它工作正常,但我想这只适用于我自己的设备。我在这里弄错了什么?
答案 0 :(得分:1)
您必须使用此方法创建发布apk并打印keyhash。并在fb consol中设置keyHash。
public static void printHashKey(Context context)
{
// Add code to print out the key hash
try {
PackageInfo info = context.getPackageManager().getPackageInfo(
com.example.app.BuildConfig.APPLICATION_ID,
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 (PackageManager.NameNotFoundException e) {
e.printStackTrace();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
}
答案 1 :(得分:0)
按照以下步骤解决问题。
将此代码粘贴到您的活动中。
public static void printHashKey(Context context)
{
// Add code to print out the key hash
try
{
PackageInfo info = context.getPackageManager().getPackageInfo( com.example.app.BuildConfig.APPLICATION_ID, 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 (PackageManager.NameNotFoundException e)
{
e.printStackTrace();
}
catch (NoSuchAlgorithmException e)
{
e.printStackTrace();
}
}
签署您的APK。(发布APK)
HashKey
logcat
HashKey
粘贴到应用创建的Facebook开发者网站中。