作为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服务.
谷歌的指示在这里说,如果你想使用AdMob在Android应用通过谷歌Play服务,您必须确保用户的设备已经在谷歌Play服务,安装APK.但是,我在尝试使其工作时遇到了麻烦; 而且我注意到即使我在手机上卸载了Google Play服务更新(并且不打算检查服务是否可用),我的应用仍能完全检索并展示广告!这是LogCat中的错误,如下所示:
W/GooglePlayServicesUtil(26558): Google Play services out of date. Requires 4132500 but found 3159130
Run Code Online (Sandbox Code Playgroud)
据推测,我的手机出厂时仍然安装了原始版本的Google Play服务.我只是想知道我是否真的需要检查Google Play服务是否可以成功使用AdMob.现在它似乎没有.请有人能告诉我为什么我不得不做这个检查.是否在上面给出的谷歌链接上处理案例4 ......?
设备上缺少或禁用Google Play服务APK,如果用户明确卸载或禁用它,则可能会发生这种情况.