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

and*_*per 37 android facebook nullpointerexception

背景

最近我们将Facebook SDK库更新到4.10(从这里开始).

在此之前,我们偶尔会遇到同样的错误,但现在它似乎经常发生.

问题

我们无法理解它发生的位置和原因.

这是崩溃日志:

致命异常:显示java.lang.NullPointerException:尝试在上android.os.Parcel.readException(Parcel.java空对象引用调用接口方法"java.lang.Object中com.facebook.inject.Lazy.get()": 1552)在android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:190)在android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:142)在android.content.ContentProviderProxy.query(ContentProviderNative.java:421)在机器人. content.ContentResolver.query(ContentResolver.java:494)在android.content.ContentResolver.query(ContentResolver.java:429)在com.facebook.internal.NativeProtocol.fetchAllAvailableProtocolVersionsForAppInfo(NativeProtocol.java:790)在com.facebook.internal .NativeProtocol.access $ 000(NativeProtocol.java:49)在com.facebook.internal.NativeProtocol $ NativeAppInfo.fetchAvailableVersions(NativeProtocol.java:281)在com.facebook.internal.NativeProtocol $ NativeAppInfo.access $ 600(NativeProtocol.java:226 )在com.facebook.internal.NativePro 母生育酚$ 1.run(NativeProtocol.java:763)在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)在java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:587)在爪哇. lang.Thread.run(Thread.java:818)

而且,既然这是Crashlytics的一份报告,我也有一些统计数据:

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

我试过的

我试着寻找异常,但我找不到任何类似的东西.

我试图找到"com.facebook.inject.Lazy"类,但这是无处可寻的.我甚至找不到注入相关的类和repos sdk用于正常使用.仅适用于单元测试.

我也试图去Facebook的Github网站(这里),但没有地方写在那里.

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

编辑:现在我发现这篇Facebook帖子,说这可能是因为使用旧版本的Facebook应用程序,但似乎这是不正确的.

这个问题

它为什么会发生?这有什么解决方法吗?Facebook是否正在修复此问题?

是否有任何版本的Facebook SDK没有发生此问题?

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

Amo*_*shi 0

请使用更新的 facebook sdk 来克服此错误。旧的sdk有一些问题。你可以从下载最新的sdk

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