安卓:Facebook安卓SDK中UserSettingsManager类空指针导致崩溃。

10

Facebook SDK会随机崩溃,但无法提供有关此崩溃的任何信息;我们甚至不知道发生这种情况时的操作,并且我们无法重现这种情况。

Gradle设置

implementation 'com.facebook.android:facebook-android-sdk:[4,5)'
我们正在使用 Facebook SBK 向 FB 分析发送事件。
Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean org.json.JSONObject.optBoolean(java.lang.String, boolean)' on a null object reference
   at com.facebook.UserSettingsManager$1.run(UserSettingsManager.java:148)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
   at java.lang.Thread.run(Thread.java:764)

我也遇到了同样的问题。同样毫无头绪。 - droidx
2
在官方的Facebook错误跟踪器上找到了问题报告。https://developers.facebook.com/bugs/799308333748606/ - Hari
似乎在第148行已经修复了NpE问题...请参见https://github.com/facebook/facebook-android-sdk/blob/master/facebook-core/src/main/java/com/facebook/UserSettingsManager.java ... 您知道应用程序是否会自动通过gradle实现'com.facebook.android:facebook-android-sdk:[4,5)'进行修复吗? - Luca Rocchi
1
@LucaRocchi 如果他们已经发布了它(不是代码修复,而是他们应该发布的软件包),并且Gradle处于在线模式,则此修复程序应在您的下一次构建中可用。 - Hari
1
同样的问题。可悲的是,我们已经发货了才发现这个问题,不知何故在测试期间它没有崩溃。现在我们在三年的生产中遇到了最大的崩溃问题... - NeverwinterMoon
显示剩余2条评论
2个回答

6
根据Facebook团队成员Marc Hayek在此回复中所说,我们可以升级版本来解决这个问题。
implementation 'com.facebook.android:facebook-login:4.41.0'

希望这可以帮助您。

5

经过一些调查,我意识到这个 bug 是在 SDK 4.40 中引入的,所以我已经将 Gradle 更改为 implementation 'com.facebook.android:facebook-login:4.39.0' 这样就可以消除这个 bug,直到一个修复后的新 FB SDK 发布。


这个版本也有同样的问题。 - Sp4Rx
我只能说自从我部署了修复程序以来,我的Crashlytics报告已经停止报告那个崩溃已经有几天了。 - Luca Rocchi
1
我检查了Facebook库4.41.0的代码。它在库中检查了null。 - Hogun

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接