C# 谁在MonoTouch iPhone应用程序中使用AdMob?
谁在MonoTouch iPhone应用程序中使用AdMob 我们为admob获得的当前sdk是admob_iphone_sdk_20100908.tar.gz 它有两个lib文件,但由于Apple链接器中众所周知的错误,只有NoThumb文件可用:C# 谁在MonoTouch iPhone应用程序中使用AdMob?,c#,iphone,objective-c,xamarin.ios,admob,C#,Iphone,Objective C,Xamarin.ios,Admob,谁在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的项
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_samconcemob.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)
当使用libadmobDeviceOnThumb3_0时。具有以下gcc_标志的库:
-gcc_flags "-L${ProjectDir} -lAdMobDeviceNoThumb3_0 -force_load ${ProjectDir}/libAdMobDeviceNoThumb3_0.a"
构建成功并生成应用程序
我们还没有在这个应用程序中集成任何admob内容,所以我们没有说明任何admob功能。只是能够链接到一个库,这似乎在尝试使用它的功能之前是必不可少的
我们对官方图书馆没有链接的事实感到失望,而旧版本没有链接。此外,大小差异相当大:官方文件膨胀了4.5倍
因此,如果有人在monotouch应用程序中使用admob,请提供任何相关信息,以便我们继续使用我们的应用程序
蒂亚
Mollyke。一旦TouchJSON库也通过gcc_标志链接到应用程序中,使用AdMob库就会起作用。一旦TouchJSON库也通过gcc_标志链接到应用程序中,使用AdMob库就会起作用。因为很多人会发现这个问题,所以您可以使用最新的monotouch绑定r admob发布在github上 下面是一个如何使用它以及如何支持它的事件的示例
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());
}
因为很多人会发现这个问题,所以您可以使用发布在github上的admob的最新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());
}
这听起来像是一篇直接属于AdMob网站的帖子。我们也向他们发送了这方面的邮件。只是急切地想听到一些关于这方面的积极消息。如果有人在谷歌上搜索,会有几个人在挣扎,所以我们认为最好有一个关于它的开放论坛。在-gcc_标志之前添加-v-v-v,这样我们就可以看到详细的输出这就指出了问题所在。admob库还使用了一个客观的c源代码TouchJSON部分。我还没有考虑它,认为最好先尝试解决链接器问题。但是-v-v-v揭示了TouchJSON是原因:未定义的符号:“\u OBJC\u CLASS\u$\ u CJSONSerializer”,引用自:libAdMobNoThumb.a(AdMobAd.o)中的objc class ref到CJSONSerializer libAdMobNoThumb.a(AdMobWebView.o)中的objc class ref到CJSONSerializer libAdMobNoThumb.a(AdMobFlexWebView.o)“\u objc\u class\uu$\u CJSONDeserializer”,引用自:libAdMobNoThumb.a(admobepener.o)中的objc类引用到Cjson反序列化器libAdMobNoThumb.a(AdMobSearchViewController.o)中的objc类引用到libAdMobNoThumb.a(AdMobAd.o)中的Cjson反序列化器这听起来像是一篇直接属于AdMob网站的帖子。我们也向他们发送了这方面的邮件。只是急切地想听到一些关于这方面的积极消息。如果有人在谷歌上搜索,会有几个人在挣扎,所以我们认为最好有一个关于它的开放论坛。在-gcc_标志之前添加-v-v-v,这样我们就可以看到详细的输出这就指出了问题所在。admob库还使用了一个客观的c源代码TouchJSON部分。我还没有考虑它,认为最好先尝试解决链接器问题。但是-v-v-v揭示了TouchJSON是原因:未定义的符号:“\u OBJC\u CLASS\u$\ u CJSONSerializer”,引用自:libAdMobNoThumb.a(AdMobAd.o)中的objc class ref到CJSONSerializer libAdMobNoThumb.a(AdMobWebView.o)中的objc class ref到CJSONSerializer libAdMobNoThumb.a(AdMobFlexWebView.o)“\u objc\u class\uu$\u CJSONDeserializer”,引用自:libAdMobNoThumb.a(admobepener.o)中的objc类引用到Cjson反序列化器libAdMobNoThumb.a(AdMobSearchViewController.o)中的objc类引用到libAdMobNoThumb.a(AdMobAd.o)中的Cjson反序列化器