无效的密钥哈希。密钥 XYZ 不匹配



我知道有人问过类似的问题,也回答过类似的问题,但我想知道的是,为什么这种情况总是发生在我身上。为了解决这个问题,我必须删除Facebook上的应用程序,然后重新创建它。它工作,直到我断开电话,然后我得到同样的问题。我尝试添加据称不匹配的密钥,以及使用keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64

生成调试密钥

我也试过使用代码:

try {
            PackageInfo info = getPackageManager().getPackageInfo(
                    "com.org.package", 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);
            }
        } catch (PackageManager.NameNotFoundException e) {
        } catch (NoSuchAlgorithmException e) {
        }

我已经问了很多这样的问题,但我似乎不知道如何避免这个问题再次出现,而不必每次重新连接我的设备到计算机时删除项目。奇怪的是,每次出错,都是同一个keyhash。

我想你在上面发布的代码中没有写你的应用程序包名而不是com.org.package

好吧,试着把包名改成你的应用程序的包名…

try {
        PackageInfo info = getPackageManager().getPackageInfo(
                "YOUR PACKAGE NAME HERE", 
                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 (NameNotFoundException e) {
    } catch (NoSuchAlgorithmException e) {
    }

最新更新