Ошибка в setFragment - FB-Native Login

я использую Facebook Nativelogin, так что это будет быстрее, чем традиционный метод, но я получаю сообщение об ошибке, как показано ниже (изображение),

ИЗОБРАЖЕНИЕ

На самом деле указатель 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, и я прошел через все эти темы, но мне это не удалось.


person VIGNESH    schedule 20.02.2013    source источник
comment
В каком классе ваш код? ошибка от Eclipse, кажется, предполагает, что вы вызываете setFragment из MainActivity, а не подкласс Fragment.   -  person Ming Li    schedule 21.02.2013
comment
я получаю ту же ошибку, даже если я кодирую это в подклассе Fragment.   -  person VIGNESH    schedule 21.02.2013
comment
Пожалуйста, опубликуйте полный код. На самом деле нет способа отладить это без дополнительной информации.   -  person Ming Li    schedule 21.02.2013
comment
Спасибо за ваше продолжение, и я полностью изменил методы и теперь перехожу по другой ссылке. На самом деле я ничего не изменил по ссылке, которую я разместил выше, но я получил эту ошибку.   -  person VIGNESH    schedule 22.02.2013


Ответы (4)


Я столкнулся с той же проблемой. Я совершенно уверен, что это связано с тем, что API Facebook 3.0 использует фрагмент библиотеки поддержки Android, поэтому вам нужно сделать то же самое, т.е.

импортировать android.support.v4.app.Fragment;

и проблема решена. Однако могут быть и другие последствия, которые вам необходимо устранить в результате внесения этого изменения.

person IanB    schedule 01.05.2013
comment
Я надеюсь не использовать библиотеку поддержки v4 (чертов FB!). Есть ли обходной путь? Получив контекст текущего фрагмента? - person Anna Billstrom; 01.02.2015

если вы покопаетесь в классе LoginButton, вы заметите, что facebook sdk использует

import android.support.v4.app.Fragment;

Я могу только предположить, что вы используете

import android.app.Fragment;

поэтому вам нужно использовать фрагмент, предоставленный библиотекой поддержки

person Chris    schedule 04.11.2014

У меня была такая же проблема, но я смог ее решить.

Если вы перейдете к LoginButton.java под пакетом виджетов в библиотеке facebook, вы можете увидеть, что функция setFragment имеет ошибку в объекте Fragment. Это как-то связано с версией библиотеки поддержки, которую использует facebook, и которую использует ваш проект. В Android Studio я смог решить эту проблему, наведя курсор на ошибку и выбрав опцию добавления этой версии библиотеки поддержки в мой путь к классу.

person askilondz    schedule 21.11.2013

Если ваша IDE говорит, что this ссылается на экземпляр MainActivity, я почти уверен, что ваши методы неуместны.

Вы должны создать Fragment в своем MainActivity и переместить свой метод onCreateView() в этот фрагмент. Поступая таким образом, вы сошлетесь на экземпляр Fragment, написав authButton.setFragment(this);.

person Wang    schedule 19.11.2014