2013-02-20 73 views
2

我使用Facebook的Nativelogin,所以,这将是比传统方法快,但我得到了如下错误(图像),错误setFragment - FB-本地登录

IMAGE

其实this指针指向到这里的当前片段,对吗?如果没有, 指针指向什么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登录几个线程,我已经通过所有这些线程去,但我没有成功

+0

你的代码在哪个类中?来自Eclipse的错误似乎表明您正在从MainActivity调用setFragment,而不是Fragment子类。 – 2013-02-20 21:57:09

+0

即使我在Fragment子类中编码,我也会得到相同的错误。 – VIGNESH 2013-02-21 07:05:45

+0

请发布完整的代码。如果没有更多的信息,真的没办法调试。 – 2013-02-21 17:19:39

回答

4

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

import android.support.v4.app.Fragment;

问题已解决。但是,作为进行此更改的结果,您可能还需要解决其他影响。

+0

我希望*不*使用v4支持库(该死的FB!)是否有解决方法?通过获取当前片段的上下文? – 2015-02-01 19:27:25

0

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

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

1

如果在LoginButton类挖你会发现,Facebook的SDK使用

import android.support.v4.app.Fragment;

我只能假设你正在使用

import android.app.Fragment; 

,所以你需要使用由支持库提供的片段

0

如果您的IDE说this指的是的实例,我很确定你的方法是错误的。

您必须在MainActivity中创建Fragment,并在此片段中移动onCreateView()方法。通过这种方式,您将参考Fragment编写authButton.setFragment(this);的实例。