无法找到com.facebook.katana.provider.PlatformProvider的提供商信息

时间:2013-10-22 16:23:44

标签: android facebook

我想通过Facebook登录我的应用程序,但是我收到了Logcat的下一条消息:

Failed to find provider info for com.facebook.katana.provider.PlatformProvider

并且启动器未加载。我得到了我的哈希键like this

我的代码是:

case R.id.btn_start_facebook:
        // callback when session changes state
        // start Facebook Login

        Session.openActiveSession(this, true, new Session.StatusCallback() {

            // callback when session changes state
            @Override
            public void call(Session session, SessionState state,
                    Exception exception) {
                if (session.isOpened()) {

                    // make request to the /me API
                    Request.executeMeRequestAsync(session,
                            new Request.GraphUserCallback() {

                                // callback after Graph API response
                                // with user object
                                @Override
                                public void onCompleted(GraphUser user,
                                        Response response) {
                                    if (user != null) {

                                        Log.d("myDebug",
                                                "Hello " + user.getName()
                                                        + " user id = "
                                                        + user.getId()
                                                        + "!");

                                    } else {
                                        Log.d("myDebug", "User is null");

                                    }

                                }
                            });
                }
            }
        });

4 个答案:

答案 0 :(得分:10)

在您的应用程序清单中添加互联网许可

<uses-permission android:name="android.permission.INTERNET"/>

答案 1 :(得分:4)

我的问题是Android上安装的Facebook应用程序已经过时,与我的Facebook Android SDK不一致。

请查看此页面:Developer Facebook并确保Facebook SDK与Android上安装的Facebook应用程序一致。

答案 2 :(得分:0)

也许你可以尝试像这样做更多的错误检查

if (user != null) {

    Log.d("myDebug",
          "Hello " + user.getName()
          + " user id = "
          + user.getId()
          + "!");
} else {
      Log.d("myDebug", "User is null");

      FacebookRequestError error = response.getError();
      if (error != null) {
           Log.d(String.format("Error: %s", error.getErrorMessage())); 
      }
}

答案 3 :(得分:0)

如果有人有同样的错误并且上面的答案不起作用,请检查您的Facebook应用程序是否移动到SD卡。当您将智能手机连接到电脑时,它会自动禁用位于SD卡上的每个应用程序。

我找到的解决方案是再次将Facebook应用程序移至手机进行测试。 您也可以断开智能手机并运行应用程序,它运行正常,但您无法访问调试等。