Facebook SDK 4.10上的NPE:尝试调用空对象引用上的接口方法java.lang.Object com.facebook.inject.Lazy.get()
背景
最近我们更新了Facebook SDK库到4.10(从这里 )。
以前,我们现在有同样的错误,但现在看起来更频繁。
问题
我们无法了解其发生的地点和原因。
这里是崩溃日志:
致命exception:java.lang.NullPointerException:尝试在android.os.Parcel.readException(Parcel.java:null)处的null对象引用上调用接口方法'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)在android。在com.facebook.internal的com.facebook.internal.NativeProtocol.fetchAllAvailableProtocolVersionsForAppInfo(NativeProtocol.java:790)上的android.content.ContentResolver.query(ContentResolver.java:429)上的content.ContentResolver.query(ContentResolver.java:494) .NativeProtocol.access $ com(com.facebook.internal.NativeProtocol上的$ 000(NativeProtocol.java:49)$ NativeAppInfo.fetchAvailableVersions(NativeProtocol.java:281)at com.facebook.internal.NativeProtocol $ NativeAppInfo.access $ 600(NativeProtocol.java:226 )在com.facebook.internal.NativePro 在java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:587)上的java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)tocol $ 1.run(NativeProtocol.java:763)。 lang.Thread.run(Thread.java:818)
而且,由于这是来自Crashlytics的报告,我也有一些统计数据:
- 通常(90%)在魅族设备上出现,其余的在LG,三星等。
- 通常(72%)出现在Android 5.1版本上,其他版本我们支持(4.x及以上版本)。
我试过了
我试图寻找例外,但我找不到任何甚至类似的东西。
我试图find“com.facebook.inject.Lazy”类,但是这是无处可寻的。 我什至不能find注射相关的类和回购,sdk使用正常使用。 仅用于unit testing。
我也试过去Facebook的Github网站( 这里 ),但是无处可去。
后来我发现这是在Facebook的开发者网站上报道的 ,但似乎并没有被修复,也没有人知道如何处理它。
编辑:现在我已经find了这个Facebook的post ,说这可能是因为使用旧版本的Facebook应用程序,但它似乎是不正确的。
这个问题
为什么会发生? 有没有解决方法? Facebook是否为此工作?
有什么版本的Facebook SDK,这个问题不会发生?
而且,最重要的是,如何处理和修复?
请使用更新的Facebook的SDK来克服这个错误。 老sdk有一些问题。 你可以从最新的sdk下载