Android: FacebookAuthorizationException появляется иногда
Начиная с пары недель это исключение иногда появляется в моем приложении:
Non-fatal Exception: com.facebook.FacebookAuthorizationException: CONNECTION_FAILURE: TigonError(2): TigonLigerErrorDomain(2) AsyncSocketException: connect failed (immediately), type = Socket not open, errno = 101 (Network is unreachable)
at com.facebook.login.LoginManager.onActivityResult(LoginManager.java:218)
at com.facebook.login.LoginManager$1.onActivityResult(LoginManager.java:173)
at com.facebook.internal.CallbackManagerImpl.onActivityResult(CallbackManagerImpl.java:95)
at com.myapp.util.connect.FacebookConnect.onActivityResult(FacebookConnect.java:338)
Facebook SDK: 4.27.0 Android-версия: 4.4.2 и 7 (информация о Crashlytics)
У вас есть идеи, что вы думаете об этом исключении?
большое спасибо
** ОБНОВИТЬ
Я написал билет на поддержку Facebook, и после нескольких сообщений последний:
Привет Энтони, спасибо за дополнительные подробности. Глядя на данные для вашего приложения, похоже, что не было каких-либо неудачных вызовов API, зарегистрированных в вашем приложении. Это указывает на то, что попытки входа в систему завершились с ошибкой до того, как они дошли до наших серверов, и подтверждает, что это действительно связано с сетевыми ошибками.
Я согласен, что это не идеальный опыт для пользователей, чтобы повторить попытку входа в систему, но в случае связанных с сетью вопросов, подобных этому, это лучший подход. Я бы рекомендовал просить пользователя проверить их подключение к устройству и снова инициализировать поток входа.
От отладки этого маловероятно, что это связано с проблемами совместимости с Retrofit, хотя я не могу с уверенностью утверждать это. Скорее всего, что затронутые пользователи просто испытали временное падение возможностей подключения.
Я буду отмечать это как закрытое, поскольку в SDK для Facebook не обнаружена ошибка, но если вы можете получить любую информацию, которая указывала бы иначе (например, способ последовательно воспроизводить ошибку на устройстве который имеет полное подключение к интернету), пожалуйста, дайте мне знать, и я буду рад помочь изучить это снова.
Ответы
Ответ 1
Это исключение означает, что пользователь вашего приложения испытывает проблемы с подключением к Интернету. Это проблема, которую все разработчики должны заботиться при совершении сетевых вызовов, но это особенно важно для мобильных устройств (качество мобильного интернета может быть значительно низким). К сожалению, ошибки netwok не могут быть полностью устранены.
Общим способом решения такой проблемы является повторная попытка: либо со стороны приложения (повторная попытка, показывая пользователю ошибку только после нескольких сетевых ошибок), либо сбоку от пользователя (предлагая пользователю попробовать еще раз).