2009-09-29 5 views
0

Cette plante (mais sans produire toute information à l'Debugger, pas décharge, aucune trace):+ requestAdWithDelegate: plante parce que je suis dans GSEventReceiveRunLoopMode?

adMobAd = [AdMobView requestAdWithDelegate:self]; // start a new ad request 
[adMobAd retain]; // this will be released when it loads (or fails to load) 

je pensais que c'était parce que mon code n'est pas exécuté dans NSDefaultRunLoopMode, qui dit AdMob est nécessaire pour + requestAdWithDelegate :. Malheureusement, il échoue même si je lance le sélecteur plus tard, lorsque mon application est dans NSDefaultRunLoopMode. Donc, je ne suis toujours pas sûr de savoir pourquoi cela se bloque.

Je génère [[currentRunLoop CurrentRunLoop] [currentRode] [NSRunLoop currentRunLoop]] dans la console du débogueur, et trouve "GSEventReceiveRunLoopMode".

Qu'est-ce que GSEventReceiveRunLoopMode?

Cela se produit si je charge AdViewController à partir d'une plume (fichier .xib) ou créez (alloc/init) dans le code.

+0

Quel type d'accident? SIGSEGV? BAD_EXEC_ADDR? Exception? – nall

+0

Rien de ce qui précède - Xcode ne montre aucune information sur l'accident du tout. J'ai cependant découvert le problème: je construisais avec le SDK 3.0+, avec lequel je suis supposé utiliser les bibliothèques du répertoire extras. – Elliot

Répondre

0

Je l'ai corrigé. Je construisais avec le 3.0 SDK, et j'ai également essayé le 3.1 SDK, et le crash s'est produit sous les deux. La solution consistait à utiliser les bibliothèques compatibles 3.0 dans le répertoire extras /. Ces fichiers sont appelés libAdMobDevice3_0.a et libAdMobSimulator3_0.a.

Points bonus si quelqu'un peut me dire pourquoi les anciennes librairies AdMob plantent sous le SDK 3.0+, sans aucune information sur le crash donné par Xcode. Ou, si vous savez pourquoi AdMob doit réellement fournir deux bibliothèques différentes pour 2.0 vs 3.0 pour commencer.

+0

@Eliot, avez-vous trouvé les réponses à vos questions? J'ai un problème similaire maintenant. Si je construis le projet pour la version du système d'exploitation 2.2.1, fonctionnera-t-il sur un périphérique 3.x? Je vous remercie. –

+0

Oui et oui. La version 2.2.1 (pour autant que je sache) fonctionne sur les périphériques 3.x, mais pas sur les Simulateurs 3.x. – Elliot