2

我正在使用 Facebook Nativelogin,因此它比传统方法更快,但我得到如下错误(图片),

图片

其实this这里的指针指向的是当前的 Fragment 是吗?如果不是,这个this指针指向什么?为什么我会收到这个错误?我不知道我哪里出错了。

我正在关注https://developers.facebook.com/docs/howtos/androidsdk/3.0/login-with-facebook/#protip1

http://code.google.com/p/app-container/source/browse/trunk/AppContainer/src/levelrewind/android/app/FacebookFragment.java?spec=svn237&r=237

但是我得到了同样的错误,我已经搜索了很多,但是关于本机 FB 登录的线程只有几个,我已经浏览了所有这些线程,但我没有成功

4

4 回答 4

4

我遇到了同样的问题。我相当肯定这是因为 Facebook 3.0 API 使用了 android 支持库片段,所以你必须做同样的事情,即

导入android.support.v4.app.Fragment;

问题就解决了。但是,由于进行此更改,您可能需要解决其他问题。

于 2013-05-01T22:34:37.733 回答
1

如果您深入研究 LoginButton 类,您会注意到 facebook sdk 正在使用

import android.support.v4.app.Fragment;

我只能假设您正在使用

import android.app.Fragment;

所以需要使用支持库提供的Fragment

于 2014-11-04T17:25:47.113 回答
0

如果您的 IDE 说这this是引用的实例MainActivity,我很确定您的方法放错了位置。

Fragment您必须在您的中创建一个并在此片段中MainActivity移动您的方法。onCreateView()这样做,您将引用一个Fragmentwriting的实例authButton.setFragment(this);

于 2014-11-19T14:36:06.687 回答
0

我有同样的问题,但能够解决它。

如果您转到 facebook 库中小部件包下的 LoginButton.java,您可能会看到 setFragment 函数对 Fragment 对象有错误。它与 facebook 正在使用的支持库的版本以及您的项目正在使用的版本有关。在 Android Studio 中,我可以通过将鼠标悬停在错误上并选择将该版本的支持库添加到我的类路径的选项来解决它。

于 2013-11-21T04:47:16.720 回答