web-dev-qa-db-ja.com

Play開発者サービスとAdMobSDKの両方を利用する

MHとして。 この質問 で指摘されているように、Google Play開発者サービスが含まれている場合はAndroidプロジェクトにGoogleAdMobAdsSdk-xxxjarを含める必要はありません( 移行を参照) guide )しかし、やりたいのですが、困っています。

問題:google-play-services_libプロジェクトには、非推奨の_com.google.ads.AdRequest_の定義が含まれており、プライベートコンストラクターがあります。 AdMob jarの前のクラスパス(「AndroidPrivateLibraries」エントリ内)にあるため、コードで使用しようとすると、非推奨のクラスパスを使用しようとして、エラーが発生します:The constructor AdRequest() is not visible。 「Androidプライベートライブラリ」内のエントリを並べ替える方法がわかりません。

なぜ両方を使いたいのですか? Play開発者サービスとAdMobの両方を処理するためのユーティリティクラスを含む、多くの便利なクラスを備えた単一のライブラリプロジェクトがあります。そのライブラリプロジェクトを使用する一部のアプリは、AdMobユーティリティクラスを使用しますが、Play開発者サービスは使用しません。

19
Eric Simonton

私はこれをテストしてきましたが、Google Play開発者サービスでこれを機能させるには、いくつかの変更が必要です。

そもそも、古い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を呼び出すようにしてください。

それだけだと思います。幸運を!

18
ervaka

重複する名前空間を含まないGooglePlay開発者サービスv12を使用できます。 AndroidのSDKManagerを使用して[Extras]-> [Google Play ServicesforFroyo]からダウンロードできます。このバージョンは、AdMobスタンドアロンSDKと共存します。

時間が経つにつれて、Googleはおそらく両方を非推奨にするでしょう。

更新:Googleは スタンドアロンのAdMob SDKの非推奨 を発表しました。GooglePlaySDKに移行する必要があります。

2014年8月1日、Google Playは、古いスタンドアロンのGoogle Mobile Ads SDKv6.4.1以下を使用する新しいアプリまたは更新されたアプリの受け入れを停止します。それまでに、モバイル広告SDKのGooglePlayバージョンにアップグレードする必要があります。

10
sagis

AdMobの詳細なGooglePlay開発者サービスの移行はこちらから入手できます: https://developers.google.com/mobile-ads-sdk/docs/admob/play-migration

6
Roy

この問題でGoogle/Androidの注目を集めたと思います。

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

6
EvertvdBraak