AdMob与[GADObjectPrivate changeState:]崩溃:无法识别的选择器

dav*_*vid 51 iphone objective-c admob

我已经安装了AdMob SDK 6.2.0(Xcode 4.5(4G182),我正在iPhone 4S和模拟器上进行测试).我按照教程进行操作,只想让AdMob显示一次横幅.但它在最后一行崩溃了:

self.bannerView = [[GADBannerView alloc]
               initWithFrame:CGRectMake(0.0,
                                        self.view.frame.size.height -
                                        GAD_SIZE_320x50.height,
                                        GAD_SIZE_320x50.width,
                                        GAD_SIZE_320x50.height)];

self.bannerView.delegate = self;
self.bannerView.adUnitID = @"xREMOVEDBYMEx";
self.bannerView.rootViewController = self;
[self.view addSubview:self.bannerView];
GADRequest * request = [GADRequest request];
request.testing = YES;
[self.bannerView loadRequest:request];
Run Code Online (Sandbox Code Playgroud)

崩溃是

2012-09-28 09:03:58.268 NewProject [1467:c07] - [GADObjectPrivate changeState:]:无法识别的选择器发送到实例0x95c17d0 2012-09-28 09:03:58.276 NewProject [1467:c07] *终止应用程序未捕获的异常'NSInvalidArgumentException',原因:' - [GADObjectPrivate changeState:]:无法识别的选择器发送到实例0x95c17d0'

对我来说,这看起来像图书馆中的一个错误,但我认为这不太可能.有什么想法吗?

编辑:完全相同的代码在示例项目中工作.我的项目文件有什么问题可以导致错误吗?

小智 171

您需要添加应用程序目标的构建设置-ObjC其他链接器标志:

  1. 单击XCode中的蓝色顶级项目图标
  2. 选择目标并转到" 构建设置"
  3. 其它链接器标记添加-ObjC两个版本调试

资料来源:https://developers.google.com/mobile-ads-sdk/docs/admob/mediation#ios-linker

另外一定要做一个干净和重建