2012-09-28 50 views
51

我已經安裝了AdMob SDK 6.2.0(Xcode 4.5(4G182),我正在測試iPhone 4S和模擬器)。我遵循教程,只想讓AdMob展示一次橫幅廣告。但它崩潰的最後一行:AdMob崩潰與[GADObjectPrivate changeState:]:無法識別的選擇器

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改變狀態:]:無法識別的選擇發送to example 0x95c17d0 2012-09-28 09:03:58.276 NewProject [1467:c07] *由於未捕獲異常'NSInvalidArgumentException',原因:' - [GADObjectPrivate changeState:]:無法識別的選擇器發送到實例0x95c17d0'

這看起來像庫中的一個bug,但我認爲這不太可能。有什麼想法嗎?

編輯:完全相同的代碼在示例項目中工作。有什麼我可以做錯我的項目文件,會導致該錯誤?

回答

171

您需要添加-ObjC應用程式目標版本設定的其它鏈接器標記

  1. 點擊Xcode中藍色的頂級項目圖標
  2. 選擇你的目標,去構建設置
  3. 其它鏈接器標記添加-ObjC兩個發佈調試

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

而且一定要做好清潔和重建

+1

我的項目不會使用-all_load標誌進行編譯,但是在添加-ObjC之後,它現在似乎無崩潰地工作。你能解釋一下嗎? –

+0

我愛你這樣的人。 – GoldenJoe

+0

@bart:作爲一個小型聖誕禮物,我更新了這個答案,以包含鏈接中的必要信息並將其取消刪除。下次請自己做。 – ThiefMaster

3

如果你們仍然有問題,確保它的-ObjC而不是-ObjC。 Geez花了幾個星期試圖找出原因。

+0

在大多數編程語言中,幾乎所有內容都區分大小寫。 – GeneCode

4

最好的解決辦法是使用-force_load標誌嘗試時,而不是-ObjC enter image description here

+0

使用「-ObjC」標誌我遇到了ASIHTTP問題。 最好的解決方案是使用上面的「-force_load」標誌。 TKS! ; P – diegodsp

+0

這將完全加載這個庫並減少應用程序大小,豎起大拇指 –

+0

在Xcode 8上不起作用。起飛-ObjC給出鏈接器錯誤代碼1。 –

0

對於那些你們誰試圖添加對象 - 鏈接標誌,仍然得到了同樣的「無法識別的選擇發送到實例」錯誤加載我找到修復程序的廣告。這是最新的XCode(版本8.1)。

參考:

  • 我使用的CocoaPods加入谷歌的AdMob。
  • 我用故事板做出了一個出口連接到我的viewcontroller和GADBannerView是不是作爲一個類提供,所以我寫了像大多數人一樣。
  • 在我看到bannerview的自定義類的stackoverflow答案之一被設置爲GADBannerView,我假設它會自動發生,如果它是下拉列表中的一個選項,當您添加插座。對我來說,這不是因爲我必須自己輸入。

No custom class specified screengrab

望着我看到的GADBannerView是可以作爲一個選項,選中下拉。

GADBannerView class available

選擇它後,應用程序運行順利,沒有必要添加鏈接標誌(我的是默認爲空),或任何東西。

希望這可以幫助別人!

相關問題