首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TouchJSON的单点绑定?

TouchJSON的单点绑定?
EN

Stack Overflow用户
提问于 2010-11-25 04:17:46
回答 3查看 1.1K关注 0票数 1

用于iPhone的admob sdk使用一个专有的libAdMobNoThumb.a库和一个基于Objective-C源代码的TouchJSON库。

有没有人知道TouchJSON的C#绑定,以便我们可以将其包括在内?

或者,有人知道如何构建一个可以包含的库吗?

我们使用Xcode创建了一个iPhone库项目,并添加了完整的TouchJSON源码树。然后,我们将测试iPhone应用程序中生成的libTouchJSON.a链接到以下gcc_flags:

代码语言:javascript
复制
-v -v -v -gcc_flags "-L${ProjectDir}/Lib -lAdMobNoThumb -lTouchJSON -force_load ${ProjectDir}/Lib/libAdMobNoThumb.a -force_load ${ProjectDir}/Lib/libTouchJSON.a"

这会产生以下错误输出(这要归功于-v -v -v):

代码语言:javascript
复制
Error 1: mtouch failed with the following message:
/var/folders/hF/hF42FIdhEUmY1y-pGRsu1k+++TI/-Tmp-/tmpe374af5.tmp/main.m: In function 'monotouch_debug_connect':
/var/folders/hF/hF42FIdhEUmY1y-pGRsu1k+++TI/-Tmp-/tmpe374af5.tmp/main.m:1779: warning: implicit declaration of function 'select'
/var/folders/hF/hF42FIdhEUmY1y-pGRsu1k+++TI/-Tmp-/tmpe374af5.tmp/main.m: In function 'main':
/var/folders/hF/hF42FIdhEUmY1y-pGRsu1k+++TI/-Tmp-/tmpe374af5.tmp/main.m:1821: warning: implicit declaration of function 'chdir'
/var/folders/hF/hF42FIdhEUmY1y-pGRsu1k+++TI/-Tmp-/tmpe374af5.tmp/main.m:1838: warning: implicit declaration of function 'monotouch_enable_debug_tracking'
/var/folders/hF/hF42FIdhEUmY1y-pGRsu1k+++TI/-Tmp-/tmpe374af5.tmp/main.m:1914: warning: implicit declaration of function 'dup2'
/var/folders/hF/hF42FIdhEUmY1y-pGRsu1k+++TI/-Tmp-/tmpe374af5.tmp/main.m:1921: warning: implicit declaration of function 'mini_get_debug_options'
/var/folders/hF/hF42FIdhEUmY1y-pGRsu1k+++TI/-Tmp-/tmpe374af5.tmp/main.m:1925: warning: implicit declaration of function 'mono_debugger_agent_parse_options'
/var/folders/hF/hF42FIdhEUmY1y-pGRsu1k+++TI/-Tmp-/tmpe374af5.tmp/main.m:2052: warning: implicit declaration of function 'getpagesize'
/var/folders/hF/hF42FIdhEUmY1y-pGRsu1k+++TI/-Tmp-/tmpe374af5.tmp/main.m:2055: warning: cast from pointer to integer of different size
/var/folders/hF/hF42FIdhEUmY1y-pGRsu1k+++TI/-Tmp-/tmpe374af5.tmp/main.m:2055: warning: initialization makes pointer from integer without a cast
Undefined symbols:
  "_OBJC_CLASS_$_CJSONSerializer", referenced from:
      objc-class-ref-to-CJSONSerializer in libAdMobNoThumb.a(AdMobAd.o)
      objc-class-ref-to-CJSONSerializer in libAdMobNoThumb.a(AdMobWebView.o)
      objc-class-ref-to-CJSONSerializer in libAdMobNoThumb.a(AdMobFlexWebView.o)
  "_OBJC_CLASS_$_CJSONDeserializer", referenced from:
      objc-class-ref-to-CJSONDeserializer in libAdMobNoThumb.a(AdMobOpener.o)
      objc-class-ref-to-CJSONDeserializer in libAdMobNoThumb.a(AdMobSearchViewController.o)
      objc-class-ref-to-CJSONDeserializer in libAdMobNoThumb.a(AdMobAd.o)
ld: symbol(s) not found
collect2: ld returned 1 exit status
 (1) (AdMobber)

有什么建议可以解决这个问题吗?

蒂亚莫利克。

EN

回答 3

Stack Overflow用户

发布于 2010-11-25 04:47:03

您的AdMob库找不到CJSONDeserializer或CJSONSerializer类,我认为它们来自libTouchJSON.a.通常,这意味着您的libTouchJSON.a没有包含在您的项目中。您应该仔细检查您的所有额外参数,并确保您的libTouchJSON不是拇指的,并且包含您试图链接的所有体系结构(模拟器的x86,设备的armv6 )

票数 4
EN

Stack Overflow用户

发布于 2011-01-05 16:42:09

埃里克

很抱歉让您久等了,但最近我一直在忙于纯xcode项目。让我告诉你我是如何创建一个TouchJSON库的。

我用xcode创建了一个库项目,并复制了最新的admob库附带的TouchJSON源代码。我构建了两个nothumb发布版本,一个用于模拟器,另一个用于设备。这样就产生了两个库。为了便于在MT项目中使用它们,我使用了lipo工具将它们组合到一个fat库中。Fat库很方便,因为它们可以在模拟器和设备构建中使用。完整的项目,包括胖的库libTouchJSON.a和用于构建胖女士的脚本,都在http://www.filedropper.com/touchjson上提供的压缩文件中。

(注:这篇文章是对我最初问题的回答,因为它有点太长了,不能接受Eric S对这个问题的评论)

票数 0
EN

Stack Overflow用户

发布于 2012-02-12 11:19:32

由于很多人会发现这个问题,你可以使用github上发布的admob的最新单点绑定https://github.com/dalexsoto/AlexTouch.GoogleAdMobAds

以下是如何使用它以及如何对其事件进行暂停的示例

代码语言:javascript
复制
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());
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4271126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档