Facebook Audience SDK导致CRASH

时间:2017-09-03 10:19:00

标签: android admob facebook-ads-api

我最近将我的应用程序的facebook受众sdk更新为最新版本并且因为onLoggingImpression而导致崩溃,这是AdListener中的一种新方法,下面是我得到的堆栈跟踪。我在这里使用自定义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)

*

3 个答案:

答案 0 :(得分:3)

感谢@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在我构建项目后显示了一些警告。

答案 1 :(得分:2)

您很可能需要为Facebook受众群体网络更新Admob SDK或admob适配器。

这个问题发生在我几个月没有碰到它后重建我的项目后,因此在gradle sync之后下载了最新版本的FAN SDK。由于我使用AOL的One来调解FAN,我已将它的SDK和FAN适配器更新到最新版本并且应用程序停止崩溃 - 错误不再发生。因此,AdMob的情况可能相同 - 需要添加较新的SDK或适配器版本,以便Facebook广告可以正常运行。

答案 2 :(得分:1)

在过去几天,我在更新到 Facebook Audience Network(FAN)SDK 4.25.0 时遇到了同样的问题。插页式广告效果很好,但横幅会让这次失败。

原因是Facebook Audience Network的 com.facebook.ads.AdListener 类添加了额外的回调函数 - onLoggingImpression AudienceNetwork.jar 假设无论处理广告的代码是什么 - 在这种情况下都是MoPub的自定义事件适配器 - 将处理 ALL 它定义的回调函数

因此,在这种情况下,Facebook自定义事件适配器只需要更新。

MoPub在Github上为此提供了代码:Mopub Android SDK。你想要的文件是 FacebookBanner.java

如果您直接将项目编译为Android项目,则可以直接从该MoPub下载中获取 FacebookBanner.java 文件,并使用它来替换现有的

但是,如果您使用 Unity ,就像很多人一样,您需要做额外的工作才能将其转换为 .jar 文件。这涉及更多,所以我上传了bitbucket project here

要使用bitbucket项目,请单击链接并下载它,然后按照README说明进行操作,这些说明包含在下载中以及bitbucket上的Overview页面中。构建 for MacOS 的说明如下:

  1. 打开命令行(终端)并导航到项目文件夹。
  2. 运行" "通过键入" ./ go "
  3. 来编写脚本
  4. FacebookBanner.jar 复制到资产/插件/ Android 文件夹中的Unity项目中。
  5. 重建您的Unity项目。
  6. 如果你想做的事情" 正确"你应该下载 FacebookBanner.java 并将其放在下载的项目中的 com / mopub / mobileads / 文件夹中。我已经在项目中使用了它,但这就是你可以更新它的方法。

    如果您不在MacOS上,只需抓住 FacebookBanner.jar 文件,该文件也包含在bitbucket项目中。

    如果你不想做这项工作,只想要两次下载,那么它们就是:

    FacebookBanner.java

    FacebookBanner.jar

    显然那些会过时,但现在你已经得到了完整的解决方案。 :)

    祝你好运!