Facebook受众SDK导致崩溃问题

4
我最近将我的应用的Facebook Audience SDK更新到了最新版本,由于AdListener中新增了onLoggingImpression方法,导致我的应用一直崩溃。以下是我收到的堆栈跟踪信息。我在这里使用自定义的AdMob Facebook适配器。
java.lang.AbstractMethodError: abstract method "void com.facebook.ads.AdListener.onLoggingImpression(com.facebook.ads.Ad)"
                                                                           at com.facebook.ads.InterstitialAd$1.b(Unknown Source)   
                                                                           at com.facebook.ads.internal.DisplayAdController$11.onInterstitialLoggingImpression(Unknown Source)
                                                                           at com.facebook.ads.internal.adapters.s.onReceive(Unknown Source)
                                                                           at android.support.v4.b.g.a(LocalBroadcastManager.java:297)
                                                                           at android.support.v4.b.g.a(LocalBroadcastManager.java:46)
                                                                           at android.support.v4.b.g$1.handleMessage(LocalBroadcastManager.java:116)
                                                                           at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                           at android.os.Looper.loop(Looper.java:154)
                                                                           at android.app.ActivityThread.main(ActivityThread.java:6123)
                                                                           at java.lang.reflect.Method.invoke(Native Method)
                                                                           at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
                                                                           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:757)

*


我正在使用Admob中介来接入Facebook广告网络,但是我一直在遇到同样的错误。 - Mohamed_AbdAllah
一样的情况。我正在使用横幅广告。 - Kimi Chiu
3个回答

4
感谢@Adomas,问题应该是Facebook适配器引起的。
这是最新的集成指南。 https://developers.google.com/admob/android/mediation/facebook 现在我们不需要手动下载适配器了。
compile 'com.facebook.android:audience-network-sdk:4.25.0'
compile 'com.google.ads.mediation:facebook:4.25.0.0'

但是我正在使用4.23.0,因为在构建项目后,4.25.0会显示一些警告。


谢谢,已标记为已接受。尽管我之前尝试过这个方法,但问题在于我已经在项目的libs文件夹中添加了一个本地jar文件。只需将其删除即可。 - 1shubhamjoshi1

2

很可能您需要更新Admob SDK或适用于Facebook受众网络的admob适配器。

这个问题发生在我重建项目几个月后,因此在gradle同步后下载了最新版本的FAN SDK。由于我使用One by AOL来调解到FAN,我已经更新了它的SDK和适配器到最新版本,应用程序不再崩溃 - 错误不再发生。因此,AdMob也可能是同样的情况 - 需要添加更新的SDK或适配器版本,以使Facebook广告正常工作。


1
我最近几天更新到Facebook Audience Network(FAN)SDK 4.25.0时遇到了同样的问题。插页广告非常好,但横幅广告会导致崩溃。
原因是Facebook Audience Network的com.facebook.ads.AdListener类添加了一个额外的回调函数--onLoggingImpression。AudienceNetwork.jar假定处理广告的任何代码--在这种情况下是MoPub的自定义事件适配器--将处理它所定义的所有回调函数。
因此,在这种情况下,Facebook自定义事件适配器只需要更新即可。
MoPub在Github上提供了代码,链接为:Mopub Android SDK。您想要的文件是FacebookBanner.java。
如果您直接将项目编译为Android项目,则可以直接从MoPub下载中获取FacebookBanner.java文件,并用其替换现有的文件。
然而,如果您使用的是Unity,就像许多人一样,您需要进行额外的工作将其转换为.jar文件。这需要更多的操作,因此我在bitbucket项目中上传了相关内容。
要使用bitbucket项目,请单击链接并下载它,然后按照README说明进行操作,这些说明包括在下载中以及在bitbucket的概述页面上。构建MacOS的说明如下:
  1. 打开命令行(终端)并导航到项目文件夹。
  2. 通过键入“./go”运行“go”脚本
  3. 将FacebookBanner.jar复制到Unity项目的Assets / Plugins / Android文件夹中。
  4. 重新构建Unity项目。
如果你想按照“正确”的方式进行操作,你应该下载 FacebookBanner.java 并将其放入项目下载的文件夹 com/mopub/mobileads/ 中。我已经在项目中拥有它,但这是你更新它的方法。
如果你不使用 MacOS,你可以直接获取 FacebookBanner.jar 文件,该文件也包含在 bitbucket 项目中。
如果你不想自己动手而只想要这两个下载内容,这里它们的链接:

FacebookBanner.java

FacebookBanner.jar

显然,这些内容将会过时,但现在你已经有了完整的解决方案。 :)
祝好运!

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