利用Play服务和AdMob SDK

Eri*_*ton 19 android admob google-play-services

作为MH.在这个问题中指出,如果他们包含Google Play服务,则不再需要在他们的Android项目中包含GoogleAdMobAdsSdk-xxxjar(请参阅迁移指南).但是,我想,而且我遇到了麻烦.

问题是:google-play-services_lib项目包含一个com.google.ads.AdRequest不推荐使用的定义,并且有一个私有构造函数.它最终出现在AdMob jar前面的类路径中(在"Android Private Libraries"条目中),所以当我尝试在我的代码中使用它时,它最终会尝试使用已弃用的,导致错误:The constructor AdRequest() is not visible.我认为没有办法重新订购"Android私人图书馆"中的条目.

你问我为什么要同时使用这两种?我有一个包含许多有用类的库项目,包括一些用于处理Play服务和AdMob的实用程序类.我使用该库项目的一些应用程序使用AdMob实用程序类,但不使用Play服务.

小智 18

我一直在对此进行测试,并且需要进行一些更改才能使其在Google Play服务中正常运行.

首先,您应该删除所有引用旧的导入com.google.ads.*,因为它们现在位于com.google.android.gms.ads.*.

如您所述,需要进行更多更改:

您无法以过去的方式实例化AdRequest,但使用AdRequest.Builder如下:

AdRequest adRequest = new AdRequest.Builder().build();
Run Code Online (Sandbox Code Playgroud)

此外,请确保在所有布局上替换包的名称,以便他们调用<com.google.android.gms.ads.AdView而不是<com.google.ads.AdView.

我认为就是这样.祝好运!

  • 注意:Google Play服务中的Google移动广告目前不支持DFP广告管理系统,Ad Exchange或应用搜索广告.所以使用这些将需要旧的SDP. (7认同)
  • 感谢您的指示,但这些是使用新Play服务包的说明.我问如何在一个包含Play服务的项目中使用旧的.jar. (6认同)

sag*_*gis 10

您可以使用不包含重叠命名空间的Google Play Services v12.它可以使用Android的SDK Manager在"Extras" - >"Google Play Services for Froyo"下下载.此版本将与AdMob独立SDK共存.

随着时间的推移谷歌可能会弃用两者.

更新: Google已宣布弃用独立版AdMob SDK,您必须转到Google Play SDK:

2014年8月1日,Google Play将停止接受使用旧的独立Google移动广告SDK v6.4.1或更低版本的新应用或更新应用.到那时,您必须升级到Google Play版本的移动广告SDK.


Roy*_*Roy 6

有关AdMob的详细Google Play服务迁移,请访问:https://developers.google.com/mobile-ads-sdk/docs/admob/play-migration

  • 我不是在寻找帮助迁移以使用新的AdMob类.您甚至可能会注意到我在原始问题中包含了相同的链接.我希望在同样使用Google Play服务的项目中使用单独的.jar.我基本上放弃了这一点,假设它是不可能的. (4认同)

Eve*_*aak 6

我想我得到了Google/Android的关注,

https://code.google.com/p/android/issues/detail?id=63007