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

时间:2014-08-15 21:40:50

标签: java android admob

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

再次获得更多的业余时间,我想拿起并改进旧的应用程序,同时也开始研究一些新的想法。

现有应用程序的货币化仅通过Admob进行,无需中介,而且诚实地看一下数字(展示次数fx)我认为使用某些调解和其他网络确实会增加收入。出于这个原因,我想了解更多有关调解的信息。

我找到了一些有趣的广告网络,并且使用这些Admob集成网络的sdks和适配器似乎工作得很好,但我也看到一些有趣的网络,其中必须创建一些自定义类以支持这些,这应该没问题。

我找到了一些指南并创建了我的课程,实现了com.google.android.gms.ads.mediation.customevent.CustomEventBanner并创建了从网络获取广告的代码。当我运行代码时,我在logcat中看到结果是异常(ClassCastException),因为Admob正在尝试将类强制转换为" old" 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的旧接口和新接口,这很好用,但我真的很想知道为什么这是发生了,因为我不想引用旧的SD代码。

由于

1 个答案:

答案 0 :(得分:3)

这是SDK中的一个错误。在修复之前,您将不得不参考旧的API。