Java.lang.RuntimeException: Не удалось предоставить результат ResultInfo при регистрации с помощью Facebook

Мое приложение отлично работает на эмуляторе. Поэтому я решил запустить приложение на своем телефоне Android. Я пытаюсь войти в аккаунт Facebook, используя мое приложение, и он отлично работает на эмуляторе. И как только я запускаю свое приложение на Android-телефоне, я всегда получаю это исключение –

01-30 11:06:08.400: E/AndroidRuntime(7463): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=64206, result=0, data=null} to activity {com.facebook.samples.sessionlogin/com.facebook.LoginActivity}: java.lang.NullPointerException 

Ниже мой код-

  @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment, container, false); buttonLoginLogout = (Button) view.findViewById(R.id.buttonLoginLogout); textInstructionsOrLink = (TextView) view.findViewById(R.id.instructionsOrLink); Settings.addLoggingBehavior(LoggingBehavior.INCLUDE_ACCESS_TOKENS); Session session = Session.getActiveSession(); if (session == null) { if (savedInstanceState != null) { session = Session.restoreSession(getActivity(), null, statusCallback, savedInstanceState); } if (session == null) { session = new Session(getActivity()); } Session.setActiveSession(session); if (session.getState().equals(SessionState.CREATED_TOKEN_LOADED)) { session.openForRead(new Session.OpenRequest(this).setCallback(statusCallback)); } } updateView(); return view; } @Override public void onStart() { super.onStart(); Session.getActiveSession().addCallback(statusCallback); } @Override public void onStop() { super.onStop(); Session.getActiveSession().removeCallback(statusCallback); } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); Session.getActiveSession().onActivityResult(getActivity(), requestCode, resultCode, data); } @Override public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); Session session = Session.getActiveSession(); Session.saveSession(session, outState); } private void updateView() { Session session = Session.getActiveSession(); if (session.isOpened()) { Intent thesisProject = new Intent(getActivity(), ThesisProjectAndroid.class); startActivity(thesisProject); } else { Log.d(TAG_LOGIN_FAILED, "There is something wrong with your Facebook account. Please try again."); textInstructionsOrLink.setText(R.string.instructions); buttonLoginLogout.setText(R.string.login); buttonLoginLogout.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { onClickLogin(); } }); } } private void onClickLogin() { Session session = Session.getActiveSession(); if (!session.isOpened() && !session.isClosed()) { session.openForRead(new Session.OpenRequest(this).setCallback(statusCallback)); } else { Session.openActiveSession(getActivity(), this, true, statusCallback); } } private void onClickLogout() { Session session = Session.getActiveSession(); if (!session.isClosed()) { session.closeAndClearTokenInformation(); } } private class SessionStatusCallback implements Session.StatusCallback { @Override public void call(Session session, SessionState state, Exception exception) { updateView(); } } 

То, что я делаю, – Как только я зарегистрировался в учетной записи Facebook, мне нужно перейти к другому Intent (который отлично работает в эмуляторе), но как только я установил это приложение на Android-телефоне, я всегда получаю Login failed вход в Login failed Как только приложение запускается, даже если я не предоставил имя пользователя и пароль на странице входа в facebook, а также получаю вышеуказанное исключение.

А также кто-нибудь может сообщить мне, что моя логика правильна в updateView method или нет. То, что я хотел сделать, – как только проверка подлинности Facebook верна, означает, что я могу войти в систему, тогда мне нужно перейти к другому намерению.

Может ли кто-нибудь помочь мне здесь, почему это происходит?

Танк вы @Matt Accola. Эта страница говорит это:

Когда опция разработчика «Не продолжать деятельность» включена в системных настройках Android, процесс входа в систему Facebook SSO нарушен. LoginActivity вызывается повторно, и каждый раз, когда экземпляр LoginActivity просачивается. Логин никогда не завершается, и процесс в конечном итоге должен быть убит.

Обратите внимание, что эта ошибка не воспроизводится, если настройки «Не сохранять действия» отключены.

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

Действия по воспроизведению: 1. Включите настройку «Не выполнять действия» в настройках Android Developer (в разделе «Настройки») на устройстве.

  1. Убедитесь, что на устройстве установлено приложение Facebook для Android.

  2. Убедитесь, что все учетные записи пользователей вышли из собственного приложения Facebook.

  3. Загрузите SDK для Android для исходных кодов и образцов Android и импортируйте проекты в Eclipse.

  4. Запустите HelloFacebookSample.

  5. Нажмите кнопку «Вход». Должен отображаться экран входа в Facebook.

  6. Введите учетные данные Facebook и нажмите кнопку «Вход». После ожидания может появиться диалог auth.

  7. Нажмите OK в диалоговом окне auth.

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

Фактическое поведение. Экран Facebook остается видимым в диалоговом окне прогресса. Вся система замедляется, и в конечном итоге процессы начинают сбой по мере короткого замыкания памяти. Я захватил кучу кучи во время этого процесса и вижу многочисленные экземпляры LoginActivity, которые были просочились. Кроме того, включение StrictMode будет показывать сообщения о том, что экземпляры LoginActivity просачиваются.