AdMob 错误 - 必须在调用 loadRequest 之前设置 GADBannerView 的 rootViewController 属性:
Posted
技术标签:
【中文标题】AdMob 错误 - 必须在调用 loadRequest 之前设置 GADBannerView 的 rootViewController 属性:【英文标题】:AdMob Error - Must set the rootViewController property of GADBannerView before calling loadRequest: 【发布时间】:2012-06-30 03:35:24 【问题描述】:我正在尝试设置一个简单的单视图 ios5 iPhone 应用程序(带有 AppDelegates、ViewControllers 和 MainStoryboard),并安装了 AdWhirl(包括支持文件 - AdWhirl、GoogleAdMobAdsSDK 和 TouchJSON) - 仅使用 iAds 和 AdMob。此时应用程序中没有其他内容。这将在以后的应用程序中用作我自己的起始模板。
我已经按照几个不同的教程来尝试弄清楚如何设置它,因为我只是在学习自己编程。我已经让 iAd 显示并正常工作,并且 iAd 确实在 AdWhirl 中注册了视图,因此它们似乎工作正常。但我在尝试调用 AdMob 广告时在日志中收到此错误:
在调用 loadRequest 之前必须设置 GADBannerView 的 rootViewController 属性:
我已经搜索并找到了超出我知识范围的答案。有人可以解释我需要做什么以及我需要在哪里做来修复这个错误吗?我认为我需要更改“GoogleAdMobAdsSDK”中的“GADBannerView.h”文件,我曾尝试这样做,但到目前为止没有成功。
如果有任何其他问题,或者如果您想查看项目文件或代码(就像我说的,到目前为止,应用程序中没有其他内容),请告诉我。
任何帮助将不胜感激。
【问题讨论】:
【参考方案1】:好吧,我终于想通了。对于其他有此错误的人,这就是我解决它的方法。
在“ViewController.m”文件中,我更改了以下代码,现在 iAds 和 AdMob 广告都可以正常显示,没有错误。
- (UIViewController *)viewControllerForPresentingModalView
//return UIWindow.viewController;
return [(AppDelegate *)[[UIApplication sharedApplication] delegate] viewController];
到:
- (UIViewController *)viewControllerForPresentingModalView
//return UIWindow.viewController;
return self;
【讨论】:
以上是关于AdMob 错误 - 必须在调用 loadRequest 之前设置 GADBannerView 的 rootViewController 属性:的主要内容,如果未能解决你的问题,请参考以下文章
AdMob 错误“您必须在 androidmanifest.xml 中使用 configchanges 声明 adactivity”
将旧版 Admob 移动到新的 Admob 帐户后,是不是必须使用新的广告单元 ID 更新我的应用
在 Admob 20.1.0 中永远不会调用 onUserEarnedReward