19

作为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 Private Libraries”中的条目的方法。

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

4

4 回答 4

18

我一直在对此进行测试,并且需要进行一些更改才能通过 Google Play 服务使其正常工作。

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

正如您所提到的,还需要进行一些更改:

您不能像以前那样实例化 AdRequest,而是使用AdRequest.Builder如下方式:

AdRequest adRequest = new AdRequest.Builder().build();

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

我想就是这样。祝你好运!

于 2013-11-04T01:45:20.130 回答
10

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

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

更新: Google 已宣布弃用独立的 AdMob SDK,您必须迁移到 Google Play SDK:

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

于 2014-01-08T16:02:24.177 回答
6

我想我引起了 Google/Android 的注意,

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

于 2013-11-29T12:06:18.057 回答
6

AdMob 的详细 Google Play 服务迁移可在此处获得:https ://developers.google.com/mobile-ads-sdk/docs/admob/play-migration

于 2013-11-05T19:58:33.123 回答