E/com.facebook.appevents.RestrictiveDataManager:updateRulesFromSetting 失败

E/com.facebook.appevents.RestrictiveDataManager: updateRulesFromSetting failed

当我从 Android Studio 启动我的应用程序时,在我的设备小米米 A2 上安装了 Facebook SDK,它会触发相同的错误三次。它不会停止应用程序,但我不知道我是否遗漏了什么或者只是不重要,但最后,这是一个错误,我想澄清一下。

我在小米 A2 上使用 Android Studio 3.4.1,Android 9,build.gradle 文件中的新条款是 implementation 'com.facebook.android:facebook-android-sdk:5.1.0'。升级Facebook SDK之前没有出现错误

这是 Logcat 中出现的内容:

2019-06-24 18:24:31.202 25105-25136/com.myapp E/com.facebook.appevents.RestrictiveDataManager: updateRulesFromSetting failed org.json.JSONException: End of input at character 0 of at org.json.JSONTokener.syntaxError(JSONTokener.java:449) at org.json.JSONTokener.nextValue(JSONTokener.java:97) at org.json.JSONArray.(JSONArray.java:92) at org.json.JSONArray.(JSONArray.java:108) at com.facebook.appevents.RestrictiveDataManager.updateFromSetting(RestrictiveDataManager.java:32) at com.facebook.internal.FetchedAppSettingsManager.parseAppSettingsFromJSON(FetchedAppSettingsManager.java:323) at com.facebook.internal.FetchedAppSettingsManager.access[=13=]0(FetchedAppSettingsManager.java:63) at com.facebook.internal.FetchedAppSettingsManager.run(FetchedAppSettingsManager.java:181) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) at java.lang.Thread.run(Thread.java:764)

编辑 该问题已在 5.1.1 版本中修复。


恢复到 5.0.3 以消除此问题。 5.1.0 实际上是 崩溃 在生产中使用这种方法(有一个 bug report here)。 GitHub 该文件的提交显示出它的缺陷,该方法是从多个线程调用的,最终导致并发崩溃,因为它使用的是静态 ArrayList。

最近核心 FB SDK 有点臃肿,充满了无用的东西和 low-quality 代码。甚至无法关闭的无代码的东西 "feature" 看起来特别恐怖。如果您的应用程序中并不严格需要 FB SDK,我会避免使用它,直到他们弄清楚他们的想法。