Facebook App Event sdk 4.38.0 在 ViewHierarchy.setAppearanceOfView 中抛出 NPE

Posted

技术标签:

【中文标题】Facebook App Event sdk 4.38.0 在 ViewHierarchy.setAppearanceOfView 中抛出 NPE【英文标题】:Facebook App Event sdk 4.38.0 throws NPE in ViewHierarchy.setAppearanceOfView 【发布时间】:2018-11-14 10:49:23 【问题描述】:

我在使用 facebook sdk 的某个应用程序中遇到问题。将 sdk 从 4.27.0 升级到 4.38.0 后,fabric 开始记录此致命异常。我不知道它何时或如何发生,因为我自己无法重现它。也许你们中的一些人在升级 facebook SDK 后遇到了这个问题。

Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.graphics.Bitmap.compress(android.graphics.Bitmap$CompressFormat, int, java.io.OutputStream)' on a null object reference
   at com.facebook.appevents.codeless.internal.ViewHierarchy.setAppearanceOfView(ViewHierarchy.java:182)
   at com.facebook.marketing.internal.ButtonIndexer$ViewProcessor.getClickableElementsOfView(ButtonIndexer.java:197)
   at com.facebook.marketing.internal.ButtonIndexer$ViewProcessor.getClickableElementsOfView(ButtonIndexer.java:206)
   at com.facebook.marketing.internal.ButtonIndexer$ViewProcessor.getClickableElementsOfView(ButtonIndexer.java:206)
   at com.facebook.marketing.internal.ButtonIndexer$ViewProcessor.getClickableElementsOfView(ButtonIndexer.java:206)
   at com.facebook.marketing.internal.ButtonIndexer$ViewProcessor.getClickableElementsOfView(ButtonIndexer.java:206)
   at com.facebook.marketing.internal.ButtonIndexer$ViewProcessor.getClickableElementsOfView(ButtonIndexer.java:206)
   at com.facebook.marketing.internal.ButtonIndexer$ViewProcessor.getClickableElementsOfView(ButtonIndexer.java:206)
   at com.facebook.marketing.internal.ButtonIndexer$ViewProcessor.getClickableElementsOfView(ButtonIndexer.java:206)
   at com.facebook.marketing.internal.ButtonIndexer$ViewProcessor.getClickableElementsOfView(ButtonIndexer.java:206)
   at com.facebook.marketing.internal.ButtonIndexer$ViewProcessor.getClickableElementsOfView(ButtonIndexer.java:206)
   at com.facebook.marketing.internal.ButtonIndexer$ViewProcessor.getClickableElementsOfView(ButtonIndexer.java:206)
   at com.facebook.marketing.internal.ButtonIndexer$ViewProcessor.getClickableElementsOfView(ButtonIndexer.java:206)
   at com.facebook.marketing.internal.ButtonIndexer$ViewProcessor.getClickableElementsOfView(ButtonIndexer.java:206)
   at com.facebook.marketing.internal.ButtonIndexer$ViewProcessor.getClickableElementsOfView(ButtonIndexer.java:206)
   at com.facebook.marketing.internal.ButtonIndexer$ViewProcessor.getClickableElementsOfView(ButtonIndexer.java:206)
   at com.facebook.marketing.internal.ButtonIndexer$ViewProcessor.getClickableElementsOfView(ButtonIndexer.java:206)
   at com.facebook.marketing.internal.ButtonIndexer$ViewProcessor.getClickableElementsOfView(ButtonIndexer.java:206)
   at com.facebook.marketing.internal.ButtonIndexer$ViewProcessor.attachListeners(ButtonIndexer.java:166)
   at com.facebook.marketing.internal.ButtonIndexer$ViewProcessor.process(ButtonIndexer.java:161)
   at com.facebook.marketing.internal.ButtonIndexer$ViewProcessor.run(ButtonIndexer.java:145)
   at android.os.Handler.handleCallback(Handler.java:754)
   at android.os.Handler.dispatchMessage(Handler.java:95)
   at android.os.Looper.loop(Looper.java:163)
   at android.app.ActivityThread.main(ActivityThread.java:6221)
   at java.lang.reflect.Method.invoke(Method.java)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794)

【问题讨论】:

我在 Android 5.1 和 4.4.4 版本以及多个深奥的设备(如 LAVA - Grand 2)上也看到了它。 向 facebook 提交了错误报告,请随时通过“订阅”投票:developers.facebook.com/support/bugs/1955482454532167 已经做到了。感谢您报告它,我没有在 facebook 网站上发布它,因为 3.38.0 不是最新版本的 sdk :) 要重现这种情况,您只需创建 ImageView 并设置空 BitmapDrawable:imageView.setImageDrawable(new BitmapDrawable()); imageView.setClickable(true); 然后 Facebook SDK 在大约 2% 的情况下(当前)基于设备 ID 将启用按钮索引功能,它会失败,因为BitmapDrawable.getBitmap 可以为空。 不幸的是,我无法以您描述的方式重现此错误:( 【参考方案1】:

facebook android SDK 4.40.0 固定版本最近发布:

https://developers.facebook.com/docs/android/change-log-4x/ https://github.com/facebook/facebook-android-sdk/releases/tag/sdk-version-4.40.0

【讨论】:

以上是关于Facebook App Event sdk 4.38.0 在 ViewHierarchy.setAppearanceOfView 中抛出 NPE的主要内容,如果未能解决你的问题,请参考以下文章

我应该如何在带有 Facebook sdk 4 的 Android App 中合并 Like 按钮?

Facebook Android SDK:“无法解析符号 EVENT_NAME_SUBSCRIBE”

Facebook PHP SDK 4.0 使用 Lumen 登录

Facebook iOS SDK 4.0“App Invites”在没有 iOS 通知的情况下发送

Facebook SDK错误'必需'app_id“密钥未在配置中提供

android facebook sdk 4.1.2 eclipse 错误