Facebook SDK 4.10 上的 NPE:尝试在空对象引用上调用接口方法'java.lang.Object com.facebook.inject.Lazy.get()'



Background

最近,我们将 Facebook SDK 库更新为 4.10(从这里开始)。

以前,我们不时会遇到相同的错误,但现在似乎它发生的频率要高得多。

问题所在

我们没有办法理解它在哪里发生以及为什么发生。

这是崩溃日志:

致命异常:java.lang.NullPointer异常:尝试调用 接口方法 'java.lang.Object com.facebook.inject.Lazy.get()' on 空对象引用 at android.os.Parcel.readException(Parcel.java:1552) at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:190) at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:142) at android.content.ContentProviderProxy.query(ContentProviderNative.java:421) at android.content.ContentResolver.query(ContentResolver.java:494) at android.content.ContentResolver.query(ContentResolver.java:429) at 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) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) at java.lang.Thread.run(Thread.java:818)

而且,由于这是来自Crashlytics的报告,我也有一些统计数据:

  • 通常(90%)发生在魅族设备上,其余发生在LG,三星等设备上。
  • 通常 (72%) 发生在 Android 5.1 版本上,其余发生在我们支持的所有其他版本(4.x 及更高版本)上。

我尝试过什么

我尝试搜索异常,但我找不到任何类似的东西。

我试图找到"com.facebook.inject.Lazy"类,但这无处可寻。我什至找不到 sdk 用于正常使用的与注入相关的类和存储库。仅用于单元测试。

我也试着去Facebook的Github网站(这里),但那里没有地方可以写。

后来我发现这是在Facebook的开发者网站上报道的,但似乎不会修复,没有人知道如何处理它。

编辑:现在我找到了这个Facebook帖子,它说这可能是因为使用了旧版本的Facebook应用程序,但似乎不正确。

问题

为什么会这样?有什么解决方法吗?Facebook是否正在解决这个问题?

是否有任何版本的 Facebook SDK 不会出现此问题?

而且,最重要的是,如何处理和修复它?

请使用更新的 facebook sdk 来克服此错误。 旧 SDK 存在一些问题。您可以从以下位置下载最新的 SDK

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

相关内容

最新更新