我正在使用Facebook Nativelogin,所以它会比传统方法更快,但我得到如下错误(图片),
实际上this
指针指向当前的片段,是吗?如果不 ,
这个this
指针指向什么?为什么我得到这个错误?我不知道我哪里出错了。
我正在关注https://developers.facebook.com/docs/howtos/androidsdk/3.0/login-with-facebook/#protip1
但我得到了相同的错误,我已经搜索了很多,但只有几个关于本机FB登录的线程,我已经通过所有这些线程,但我没有成功
答案 0 :(得分:4)
我遇到了同样的问题。我相当肯定这是因为Facebook 3.0 API使用了android支持库片段,因此你必须这样做。
import android.support.v4.app.Fragment;
问题解决了。但是,由于进行此更改,您可能需要解决其他问题。
答案 1 :(得分:1)
如果你深入了解LoginButton类,你会发现facebook sdk正在使用
import android.support.v4.app.Fragment;
我只能假设您正在使用
import android.app.Fragment;
因此您需要使用支持库提供的片段
答案 2 :(得分:0)
我遇到了同样的问题但是能够解决它。
如果你去facebook库中的widget包下的LoginButton.java,你可能会看到setFragment函数在Fragment对象上有错误。它与facebook正在使用的支持库版本以及您的项目正在使用有关。在Android Studio中,我能够通过将鼠标悬停在错误上并选择将该版本的支持库添加到我的类路径来解决它。
答案 3 :(得分:0)
如果您的IDE说明this
正在引用MainActivity
的实例,我很确定您的方法是错误的。
您必须在Fragment
中创建MainActivity
并在此片段中移动onCreateView()
方法。这样做,您将引用Fragment
写authButton.setFragment(this);
的实例。