1

谁在 MonoTouch iPhone 应用程序中使用 AdMob?

我们为admob获取的当前sdk是admob_iphone_sdk_20100908.tar.gz

它有两个 lib 文件,但由于 Apple 链接器中众所周知的错误,因此只有 NoThumb 文件有用:

libAdMobNoThumb.a (2.464.412 bytes, created on 16 september 2010 at 14:41)

当我们使用以下额外标志链接一个测试应用程序(只是一个新生成的基于 iPhone Windows 的项目,没有任何更改)时:

-gcc_flags "-L${ProjectDir} -lAdMobNoThumb -force_load ${ProjectDir}/libAdMobNoThumb.a"

mtouch 惨遭失败,mtouch 失败,没有输出 (1)

(我们使用 -force_load 选项而不是 -ObjC 选项,如末尾的注释中所示:

http://developer.apple.com/library/mac/#qa/qa2006/qa1490.html)

MT_SampleAdMob.zip 测试项目可从博客中获得

http://sabonrai.wordpress.com/2009/09/27/monotouch-binding-for-admob/

包含两个较旧的 NoThumb 库:

libAdMobDeviceNoThumb3_0.a (539.288 bytes, created 15 jan 2010 at 03:26)
libAdMobSimulator3_0.a (488.464 bytes, created 5 september 2009)

使用带有以下 gcc_flags 的 libAdMobDeviceNoThumb3_0.a 库时:

-gcc_flags "-L${ProjectDir} -lAdMobDeviceNoThumb3_0 -force_load ${ProjectDir}/libAdMobDeviceNoThumb3_0.a"

构建成功并生成一个应用程序。

我们还没有在这个应用程序中集成任何 admob 的东西,所以我们没有说明任何关于 admob 功能的内容。仅仅关于能够与库链接,这在尝试使用它的功能之前似乎是必不可少的。

我们对官方库没有链接的事实感到沮丧,旧版本的链接。另外,大小差异很大:官方文件膨胀了4.5倍!

因此,如果有人在 monotouch 应用程序中使用 admob,请提供任何相关信息,以便我们继续使用我们的应用程序。

TIA,

莫莉克。

4

2 回答 2

1

由于很多人会发现这个问题,您可以在此处https://github.com/dalexsoto/AlexTouch.GoogleAdMobAds使用发布在 github 上的最新 monotouch 绑定

这是一个如何使用它以及如何订阅它的事件的示例

public override void ViewDidLoad ()
        {
            base.ViewDidLoad ();

            var ad = new GADBannerView(new RectangleF(new PointF(0,0), GADBannerView.GAD_SIZE_300x250))
            {
                AdUnitID = "Use Your AdMob Id here",
                RootViewController = this

            };

            ad.DidReceiveAd += delegate 
            {
                this.View.AddSubview(ad);
                Console.WriteLine("AD Received");
            };

            ad.DidFailToReceiveAdWithError += delegate(object sender, GADBannerViewDidFailWithErrorEventArgs e) {
                Console.WriteLine(e.Error);
            };

            ad.WillPresentScreen += delegate {
                Console.WriteLine("showing new screen");
            };

            ad.WillLeaveApplication += delegate {
                Console.WriteLine("I will leave application");
            };

            ad.WillDismissScreen += delegate {
                Console.WriteLine("Dismissing opened screen");
            };

            Console.Write("Requesting Ad");
            ad.LoadRequest(new GADRequest());
}
于 2012-02-12T03:20:21.900 回答
0

只要 TouchJSON 库也通过 gcc_flags 链接到应用程序,就可以使用 AdMob 库。

于 2010-11-28T09:55:57.707 回答