我知道有人问过类似的问题,也回答过类似的问题,但我想知道的是,为什么这种情况总是发生在我身上。为了解决这个问题,我必须删除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) {
}