我安装了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];
崩溃是
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 “
对我来说这看起来像库中的一个错误,但我认为这不太可能。有什么想法吗?
编辑:完全相同的代码适用于示例项目。我的项目文件有什么问题可以导致错误吗?
答案 0 :(得分:171)
您需要将-ObjC
添加到应用程序目标的构建设置的其他链接器标志中:
-ObjC
来源:https://developers.google.com/mobile-ads-sdk/docs/admob/mediation#ios-linker
另外一定要做一个干净的重建
答案 1 :(得分:4)
对我来说,最好的解决方案是使用-force_load标志而不是-ObjC
答案 2 :(得分:3)
如果你们仍然遇到麻烦,请确保它是-ObjC而不是-Objc。 Geez花了几周的时间试图找出原因。
答案 3 :(得分:0)
对于那些尝试添加Obj-c链接器标志并且在尝试加载广告时仍然遇到相同的“无法识别的选择器发送到实例”错误的人,我发现了一个修复程序。这是针对最新的XCode(版本8.1)。
供参考:
查看下拉列表,我看到GADBannerView作为选项提供并选中它。
选择它之后,应用程序顺利运行,无需添加链接器标志(默认情况下我的是空白)或其他任何内容。
希望这有助于其他人!