The constructor AdRequest() is not visible

Android

The constructor AdRequest() is not visible

Android SDK Managerを利用して、環境をアップデートしたところ、Admobを利用している箇所で

 The constructor AdRequest() is not visible 

となってしまい、エラーが表示されるようになりました。

 AdRequest request = new AdRequest();

こういうところでコンストラクターが見れませんよ、ということになってしまったのです。

色々なことをやってみましたが、治りませんでした。
確かに、Adrequestのコンストラクタがprivateになっていました。

GoogleAdMobAdsSdk-6.4.1.jar内の
public final class com.google.ads.AdRequest で

 private AdRequest();

でした。

結局、今直せていないのですが、どなたか修正の情報がありましたら、教えてください。

後日談

この後、Runもできないようになって

 Conversion to Dalvik format failed: Unable to execute dex SDK Tools 22.3

ってエラーも出るようになっちゃったんですよ。

下記のStack Overflowさんに
http://stackoverflow.com/questions/19734152/conversion-to-dalvik-format-failed-unable-to-execute-dex-sdk-tools-22-3

However, the newest Google Play library includes ads and my guess would be that you are including both Admob and Google Play Services which apparently contain the same classes. In that case you should migrate your code to use the Google Play Service ads and remove the admob jar from your project.

とありまして、つまりGoogle PlayにAdmobが入ったので、Google Play Libraryを読み込んでいると、この衝突が起こるのではということでした。
ということは、

 AdRequest request = new AdRequest();

が見られないのも、Google Play Servicesのせい?

確かに、Google Play Serviceの中にAdRequestあるわ…。
https://developer.android.com/reference/com/google/android/gms/ads/AdRequest.html

com.google.android.gms.ads.AdRequest の中に入っているようです。

…結局弊社では、Admobで大した収入がないので、一旦Admob使わないという方針にしましたが、Admobを新しいGoogle Play Service内のクラスを利用するようにすれば、治るのかもね。

それにしても、ほんっとGoogleさんにはこういうのやめてほしいです[sad]

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です