android - Facebook Android SDK 5.4.0 更新后导致 ANR

标签 android facebook sdk

将 Facebook SDK 版本从 4.40.0 更新到 5.4.0 后,我的应用出现大量 ANR。一天 12000 次 ANR,用户甚至无法打开应用。

完整堆栈跟踪:

"main" prio=5 tid=1 Waiting
  | group="main" sCount=1 dsCount=0 obj=0x7496b268 self=0xb2c84400
  | sysTid=8451 nice=0 cgrp=default sched=0/0 handle=0xb5b72534
  | state=S schedstat=( 0 0 0 ) utm=12 stm=7 core=2 HZ=100
  | stack=0xbe6c2000-0xbe6c4000 stackSize=8MB
  | held mutexes=
  at java.lang.Object.wait (Native method)
- waiting on <0x047bbe7f> (a java.lang.Object)
  at java.lang.Thread.parkFor$ (Thread.java:2127)
- locked <0x047bbe7f> (a java.lang.Object)
  at sun.misc.Unsafe.park (Unsafe.java:325)
  at java.util.concurrent.locks.LockSupport.park (LockSupport.java:161)
  at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt (AbstractQueuedSynchronizer.java:840)
  at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly (AbstractQueuedSynchronizer.java:994)
  at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly (AbstractQueuedSynchronizer.java:1303)
  at java.util.concurrent.CountDownLatch.await (CountDownLatch.java:203)
  at com.facebook.internal.LockOnGetVariable.waitOnInit (LockOnGetVariable.java:64)
  at com.facebook.internal.LockOnGetVariable.getValue (LockOnGetVariable.java:54)
  at com.facebook.FacebookSdk.getCacheDir (FacebookSdk.java:954)
  at com.facebook.internal.instrument.InstrumentUtility.getInstrumentReportDir (InstrumentUtility.java:242)
  at com.facebook.internal.instrument.InstrumentUtility.listCrashReportFiles (InstrumentUtility.java:124)
  at com.facebook.internal.instrument.crashreport.CrashHandler.sendCrashReports (CrashHandler.java:101)
  at com.facebook.internal.instrument.crashreport.CrashHandler.enable (CrashHandler.java:73)
- locked <0x01f4fe4c> (a java.lang.Class<com.facebook.internal.instrument.crashreport.CrashHandler>)
  at com.facebook.internal.instrument.InstrumentManager.start (InstrumentManager.java:46)
  at com.facebook.FacebookSdk.sdkInitialize (FacebookSdk.java:326)
- locked <0x05939e95> (a java.lang.Class<com.facebook.FacebookSdk>)
  at com.facebook.marketing.internal.MarketingInitProvider.onCreate (MarketingInitProvider.java:42)
  at android.content.ContentProvider.attachInfo (ContentProvider.java:1753)
  at android.content.ContentProvider.attachInfo (ContentProvider.java:1728)
  at android.app.ActivityThread.installProvider (ActivityThread.java:6066)
  at android.app.ActivityThread.installContentProviders (ActivityThread.java:5658)
  at android.app.ActivityThread.handleBindApplication (ActivityThread.java:5597)
  at android.app.ActivityThread.-wrap2 (ActivityThread.java)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1614)
  at android.os.Handler.dispatchMessage (Handler.java:102)
  at android.os.Looper.loop (Looper.java:154)
  at android.app.ActivityThread.main (ActivityThread.java:6351)
  at java.lang.reflect.Method.invoke! (Native method)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:896)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:786)
"GoogleApiHandler" tid=22 Native 
"GoogleApiHandler" prio=5 tid=22 Native
  | group="main" sCount=1 dsCount=0 obj=0x22c0caf0 self=0xab5c6700
  | sysTid=8512 nice=9 cgrp=default sched=0/0 handle=0x95332920
  | state=S schedstat=( 0 0 0 ) utm=0 stm=0 core=1 HZ=100
  | stack=0x95230000-0x95232000 stackSize=1038KB
  | held mutexes=
  #00  pc 0000000000048e38  /system/lib/libc.so (__epoll_pwait+20)
  #01  pc 000000000001a291  /system/lib/libc.so (epoll_pwait+60)
  #02  pc 000000000001a2c1  /system/lib/libc.so (epoll_wait+12)
  #03  pc 0000000000011e77  /system/lib/libutils.so (_ZN7android6Looper9pollInnerEi+118)
  #04  pc 0000000000011d73  /system/lib/libutils.so (_ZN7android6Looper8pollOnceEiPiS1_PPv+26)
  #05  pc 0000000000096fbd  /system/lib/libandroid_runtime.so (_ZN7android18NativeMessageQueue8pollOnceEP7_JNIEnvP8_jobjecti+22)
  #06  pc 000000000067f0a5  /system/framework/arm/boot-framework.oat (Java_android_os_MessageQueue_nativePollOnce__JI+96)
  at android.os.MessageQueue.nativePollOnce (Native method)
  at android.os.MessageQueue.next (MessageQueue.java:323)
  at android.os.Looper.loop (Looper.java:136)
  at android.os.HandlerThread.run (HandlerThread.java:61)
"TokenRefresher" tid=23 Native 
"TokenRefresher" prio=5 tid=23 Native
  | group="main" sCount=1 dsCount=0 obj=0x22c0cb80 self=0xab5c5d00
  | sysTid=8513 nice=10 cgrp=bg_non_interactive sched=0/0 handle=0x9573c920
  | state=S schedstat=( 0 0 0 ) utm=0 stm=0 core=2 HZ=100
  | stack=0x9563a000-0x9563c000 stackSize=1038KB
  | held mutexes=
  #00  pc 0000000000048e38  /system/lib/libc.so (__epoll_pwait+20)
  #01  pc 000000000001a291  /system/lib/libc.so (epoll_pwait+60)
  #02  pc 000000000001a2c1  /system/lib/libc.so (epoll_wait+12)
  #03  pc 0000000000011e77  /system/lib/libutils.so (_ZN7android6Looper9pollInnerEi+118)
  #04  pc 0000000000011d73  /system/lib/libutils.so (_ZN7android6Looper8pollOnceEiPiS1_PPv+26)
  #05  pc 0000000000096fbd  /system/lib/libandroid_runtime.so (_ZN7android18NativeMessageQueue8pollOnceEP7_JNIEnvP8_jobjecti+22)
  #06  pc 000000000067f0a5  /system/framework/arm/boot-framework.oat (Java_android_os_MessageQueue_nativePollOnce__JI+96)
  at android.os.MessageQueue.nativePollOnce (Native method)
  at android.os.MessageQueue.next (MessageQueue.java:323)
  at android.os.Looper.loop (Looper.java:136)
  at android.os.HandlerThread.run (HandlerThread.java:61)

我降级到 4.40.0 版本,问题已经解决,但是 Facebook 不断向我发送更新 SDK 的警报,如何解决?我失去了成千上万的用户和一些负面评论。

最佳答案

Facebook 团队注意到了这个问题并在 5.5.0 版本中修复了它。

提交:https://github.com/facebook/facebook-android-sdk/commit/856665c5e0ede060b3a0f18af8a808aba26d4778

关于android - Facebook Android SDK 5.4.0 更新后导致 ANR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57600316/

相关文章:

java - 如何仅检测用户在 EditText 中的输入?

android - 在 Android MediaStore 中插入音频专辑

android - 如何在 Android Studio 中使用不同的模拟器

Facebook 在网站上返回 404 错误

c++ - Windows SDK 是否限制符合条件的 Windows 版本?

android - 由于 : 'null' - Android Studio 3. 5,安装失败

facebook - 无效的应用程序 ID : The provided Application ID is invalid on page with fbml

reactjs - 无效的公式 :/usr/local/Homebrew/Library/Taps/facebook/homebrew-fb/buck. rb

windows-phone-8 - Visual Studio 2013 Professional 的 Sharepoint Phone SDK 安装

node.js - Azure Javascript SDK 无法为访问层为 'Archive' 的 Blob 复制 Blob (sync/beginCopyBlobUrl)