为什么(新)Admob试图将我的自定义中介适配器转换为旧版本?



我在市场上有一些应用已经有一段时间了,但在过去的几年里,我并没有真正对应用进行任何维护,当我做插页式广告时,并不是所有的应用都可用(或者可能是,但我只是不知道如何)。

得到更多的空闲时间在我的手上,我想拿起和改进旧的应用程序,同时也开始工作的一些新的想法。

现有应用的盈利都是通过Admob实现的,而不是中介,说实话,我认为使用一些中介和其他网络确实会增加一些收益。因此,我正在努力学习更多关于调解的知识。

我发现了一些有趣的广告网络,使用这些Admob集成网络的sdk和适配器似乎工作得很好,但是我也看到一些有趣的网络,必须创建一些自定义类来支持这些,这应该没有任何问题。

我找到了一些指南并创建了我的类实现com.google.android.gms.ads.mediation.customevent.CustomEventBanner并创建了从网络获取广告的代码。当运行代码时,我在logcat中看到结果是一个异常(ClassCastException),因为Admob试图将类转换为CustomEventBanner的"旧"版本。

项目中所有与广告相关的代码都使用新的sdk (com.google.android.gms.*),但由于某种原因,它仍然试图将CustomEventBanner类转换为旧版本。

Stacktrace(相关部分):

08-15 23:30:06.730    3875-3875/com.xxx.xxx.xxxW/Ads﹕ Could not request banner ad from adapter.
java.lang.ClassCastException: com.xxx.xxx.xxx.xxx.xxx.CustomEventBannerTest cannot be cast to com.google.ads.mediation.customevent.CustomEventBanner
at com.google.ads.mediation.customevent.CustomEventAdapter.requestBannerAd(Unknown Source)
at com.google.ads.mediation.customevent.CustomEventAdapter.requestBannerAd(Unknown Source)
at com.google.android.gms.internal.ca.a(Unknown Source)
at com.google.android.gms.internal.bv$a.onTransact(Unknown Source)
...

:我确实有一个工作的解决方案,只是实现旧的和新的接口为CustomEventBanner的方法,这是工作良好,但我真的有兴趣知道为什么会发生这种情况,因为我宁愿不引用旧的sdk代码。

谢谢

这是SDK中的一个bug。在修复之前,您将不得不引用旧的api。

最新更新