Подтвердить что ты не робот

NPE на Facebook SDK 4.10: попытка вызвать метод интерфейса "java.lang.Object com.facebook.inject.Lazy.get()" в ссылке на нулевой объект

Фон

Недавно мы обновили библиотеку Facebook SDK до 4.10 (от здесь).

Раньше у нас была такая же ошибка, но теперь, похоже, это происходит намного чаще.

Проблема

Мы не можем понять, где и почему это происходит.

Здесь журнал сбоев:

Fatal Exception: java.lang.NullPointerException: попытка вызвать interface method "java.lang.Object com.facebook.inject.Lazy.get() 'on ссылка на нулевой объект        at android.os.Parcel.readException(Parcel.java:1552)        в android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:190)        в android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:142)        в android.content.ContentProviderProxy.query(ContentProviderNative.java:421)        at android.content.ContentResolver.query(ContentResolver.java:494)        в android.content.ContentResolver.query(ContentResolver.java:429)        на com.facebook.internal.NativeProtocol.fetchAllAvailableProtocolVersionsForAppInfo(NativeProtocol.java:790)        at com.facebook.internal.NativeProtocol.access $000 (NativeProtocol.java:49)        at com.facebook.internal.NativeProtocol $NativeAppInfo.fetchAvailableVersions(NativeProtocol.java:281)        at com.facebook.internal.NativeProtocol $NativeAppInfo.access $600 (NativeProtocol.java:226)        at com.facebook.internal.NativeProtocol $1.run(NativeProtocol.java:763)        в java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)        в java.util.concurrent.ThreadPoolExecutor $Worker.run(ThreadPoolExecutor.java:587)        в java.lang.Thread.run(Thread.java:818)

И, поскольку это отчет из Crashlytics, у меня также есть статистика:

  • обычно (90%) происходит на устройствах Meizu, а остальные на LG, Samsung и других.
  • обычно (72%) происходит в версиях Android 5.1, а остальная часть - на всех остальных версиях, которые мы поддерживаем (4.x и выше).

Что я пробовал

Я попытался найти исключение, но я не могу найти ничего подобного.

Я попытался найти класс com.facebook.inject.Lazy, но этого нигде не найти. Я даже не могу найти классы и репозиции, связанные с инъекциями, которые sdk использует для нормального использования. Только для единичных испытаний.

Я также попытался перейти на сайт Github Facebook ( здесь), но писать там некуда.

Позже я обнаружил, что это было сообщено на веб-сайте разработчиков Facebook, но похоже, что он не будет исправлен, и никто не знает, как с этим справиться.

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

Вопрос

Почему это происходит? Есть ли обходной путь для этого? Помогает ли Facebook исправить это?

Есть ли версия SDK для Facebook, что эта проблема не возникает?

И, что самое главное, как его можно обрабатывать и фиксировать?

4b9b3361

Ответ 1

Для преодоления этой ошибки используйте обновленную версию facebook sdk. у старого sdk есть некоторые проблемы. вы можете скачать последнюю версию sdk из

https://developers.facebook.com/docs/android