2013-02-20 4 views
2

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

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, похоже, предполагает, что вы вызываете setFragment из MainActivity, а не подкласс Fragment. –

+0

Я получаю ту же ошибку, даже если я закодирую это в подклассе Fragment. – VIGNESH

+0

Пожалуйста, напишите полный код. Невозможно отладить это без дополнительной информации. –

ответ

4

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

import android.support.v4.app.Fragment;

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

+0

Я надеюсь, что * не * использовать библиотеку поддержки v4 (проклятый FB!) Есть ли обходной путь? Получив контекст текущего фрагмента? –

0

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

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

1

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

import android.support.v4.app.Fragment;

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

import android.app.Fragment; 

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

0

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

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

Смежные вопросы