Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
398 views
in Technique[技术] by (71.8m points)

iphone - AdMob crashes with [GADObjectPrivate changeState:]: unrecognized selector

I have installed the AdMob SDK 6.2.0 (Xcode 4.5 (4G182) and I am testing on an iPhone 4S and the simulator). I followed the tutorial and just want to get AdMob showing a banner once. But it crashes on the last line:

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];

The crash is

2012-09-28 09:03:58.268 NewProject[1467:c07] -[GADObjectPrivate changeState:]: unrecognized selector sent to instance 0x95c17d0 2012-09-28 09:03:58.276 NewProject[1467:c07] * Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[GADObjectPrivate changeState:]: unrecognized selector sent to instance 0x95c17d0'

This looks like a bug in the library to me but I think thats very unlikely. Any thoughts?

EDIT: The exact same code works in the example projects. Is there something I can do wrong with my project file that would result in that error?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You need to add -ObjC to the Other Linker Flags of your application target's build setting:

  1. Click the blue top-level project icon in XCode
  2. Choose your target and go to Build Settings
  3. Under Other Linker Flags add -ObjC for both Release and Debug

Source: https://developers.google.com/mobile-ads-sdk/docs/admob/mediation#ios-linker

Also be sure to do a clean and rebuild


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...