我最近将我的应用程序的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)
*
答案 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 的说明如下:
如果你想做的事情" 正确"你应该下载 FacebookBanner.java 并将其放在下载的项目中的 com / mopub / mobileads / 文件夹中。我已经在项目中使用了它,但这就是你可以更新它的方法。
如果您不在MacOS上,只需抓住 FacebookBanner.jar 文件,该文件也包含在bitbucket项目中。
如果你不想做这项工作,只想要两次下载,那么它们就是:
显然那些会过时,但现在你已经得到了完整的解决方案。 :)
祝你好运!