2010-11-24 8 views
1

iPhone用admob sdkは、専用のlibAdMobNoThumb.aライブラリとObjective-CソースベースのTouchJSONライブラリを使用しています。TouchJSON用のモノタッチバインディング?

誰かがTouchJSONのC#バインディングを知っているので、これを含めることができますか?

または、誰でもライブラリを組み込む方法を知っていますか?

XcodeでiPhone Libraryプロジェクトを作成し、完全なTouchJSONソースツリーを追加しました。

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) 

任意の提案:これは、次のエラー出力(-v -v -vのおかげで)生産

-v -v -v -gcc_flags "-L${ProjectDir}/Lib -lAdMobNoThumb -lTouchJSON -force_load ${ProjectDir}/Lib/libAdMobNoThumb.a -force_load ${ProjectDir}/Lib/libTouchJSON.a" 

:以下gcc_flagsでテストiPhoneアプリで結果libTouchJSON.aをリンクさよりも、私たちはしましたこの問題を回避するには?

TIA、Mollyke。

答えて

4

AdMobライブラリでは、libTouchJSON.aに由来すると思われるCJSONDeserializerまたはCJSONSerializerクラスは見つかりません。一般的には、libTouchJSON.aがプロジェクトに含まれていないことを意味します。あなたはのため

申し訳ありませんが、すべての余分な引数を二重にチェックし、あなたのlibTouchJSONが親指でなく、あなたは(デバイスのためのシミュレータ用のx86、ARMv6の)リンク

+0

ジェフ、あなたは最高です!私たちはlibTouchJSON.aとそれにリンクされたnothumbシミュレータビルドを作成し、ビンゴとしました。 – guivho

0

エリックしようとしているすべてのアーキテクチャが含まれていることを確認する必要があります遅いですが、最近私は純粋なxcodeプロジェクトで非常に忙しかったです。 TouchJSONライブラリの作成方法を教えてください。

xcodeでライブラリプロジェクトを作成し、最新のadmobライブラリに付属のTouchJSONソースをコピーしました。私は2つのノン・リリース・バージョンを作成しました.1つはシミュレータ用、もう1つはデバイス用です。これは2つのライブラリを生成します。これらをMTプロジェクトで使いやすくするために、私はlipoツールを使用してそれらを太いライブラリに結合しました。ファットライブラリは、シミュレータとデバイスビルドで使用できるので便利です。 fat libaryのlibTouchJSON.aを含む完全なプロジェクトと、fat ladyを構築するために使用されたスクリプトは、http://www.filedropper.com/touchjsonにあるzipファイルにあります。

(注:エリック・Sさんの質問にコメントとして受け入れられるために少し長すぎたとして、これは、私の最初の質問への答えとして掲載されます)この質問を見つけるだろう多くの人々以来

0

、あなたAdMobのために日付MonoTouchでバインディングまでを使用することができますgithubのに掲示ここhttps://github.com/dalexsoto/AlexTouch.GoogleAdMobAds

ここにそれを使用する方法の一例であり、どのようにそのイベントにsuscribeする

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()); 
} 
関連する問題