Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.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
android的Facebook发布密钥哈希不起作用_Android_Facebook_Hash_Apk_Facebook Android Sdk - Fatal编程技术网

android的Facebook发布密钥哈希不起作用

android的Facebook发布密钥哈希不起作用,android,facebook,hash,apk,facebook-android-sdk,Android,Facebook,Hash,Apk,Facebook Android Sdk,要生成释放密钥哈希,我需要 keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64 同样,当我使用调试键和构建时,它工作得很好。这个问题可能是Proguard吗?我用的是下面几行 -keep class com.facebook.** { *; } -keepattributes Signatur

要生成释放密钥哈希,我需要

keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64
同样,当我使用调试键和构建时,它工作得很好。这个问题可能是Proguard吗?我用的是下面几行

-keep class com.facebook.** { *; }
-keepattributes Signature

为了确保您的keyhash是正确的,您可以使用下面的代码进行验证

 // Add code to print out the key hash
    try {
        PackageInfo info = getPackageManager().getPackageInfo(
                "yourpackagename", 
                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) {

    }
进口

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.pm.Signature;

您是否在清单文件中添加了释放密钥?当您运行此命令时,将询问您的密码?是,该命令询问密码,我键入的密码与我从Eclipse导出释放apk时使用的密码相同否我没有在清单中添加释放密钥。我不知道我应该这么做。我该怎么做?我的互联网坏了一段时间。康卡斯特似乎在挑战网络中立性,降低了我的整体服务质量。所以我花了大约一个小时才回来。我的互联网断了,现在又恢复了。感谢您的回复,但是PackageInfo似乎不存在,并且没有签名。你们进口什么?谢谢。@KatedralPillon添加了导入。谢谢。打印的密钥散列既不像我的调试密钥,也不像我的发布密钥。那是哪把钥匙呢?我在调试模式下测试,当然(与已发布的apk相反)@KatedralPillon您需要先签署apk,然后通过usb电缆连接手机,并在手机上运行已签署的apk。检查您的日志以获取密钥哈希。您的密钥哈希将以“=”结尾。谢谢+1.您的方法实现了与
keytool-exportcert-alias-keystore | openssl sha1-binary | openssl base64
相同的功能。但我仍然停留在我开始的地方:)。为什么我的发布版本不会发布?
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.pm.Signature;