疑难解决

以下是 Android 版 Facebook 登录的常见问题和解决方案。

我遇到登录对话框错误。

我具有原生登录对话框权限,但我并未通过身份验证。返回的 Logcat 异常错误如下所示:

...W/fb4a:fb:OrcaServiceQueue(504): com.facebook.orca.protocol.base.ApiException: remote_app_id 与存储的 ID 不匹配 

我看到一个非原生的登录对话框,且该对话框包含如下错误消息:

..应用的 Facebook 登录配置错误... 

如果您遇到登录对话框问题,可尝试以下解决方案:

我的密钥散列无效。

如果您遇到密钥散列问题,可尝试以下解决方案:

  • 在将新密钥散列添加到应用面板时,请务必点击保存更改
  • 您输入的密码不正确。默认 Keystore 密码:“android”。
  • 将您发送至 Facebook 的密钥散列复制粘贴到应用面板并点击保存更改,然后在主要活动中对 onCreate() 进行此项更改:
    @Override
    
    public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
                    
         try {
             PackageInfo info = getPackageManager().getPackageInfo(
                               "{your-package-name}",                  //Insert your own package name.  
                                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) {
                      
              }
               ...

我遇到 Keytool 错误。

  • 如果您遇到 Command not found 错误,请将路径添加至全局 PATH 或转至该文件夹运行以下命令:
    在 Windows 操作系统中:C:\Program Files (x86)\Java\jdk1.6.0\bin
    在 Mac 操作系统中:/usr/bin
  • 如果 Keytool 找不到您的 debug.keystore 位置:请查明正确路径。有正确位置时,Keytool 会始终要求您输入密码。