1

http://docs.xamarin.com/ios/tutorials/Working_with_Web_Services#Consuming_WCF_Servicesのような Silverlight SLSvcUtil.exe ツールを使用して、Monotouch で WCF クライアントを作成しました。

シミュレーターではすべて正常に動作しますが、iPhone 4S で開始するとエラーが発生しました:

--aot-only で実行中にメソッド '(wrapper delegate-begin-invoke) :begin_invoke_IAsyncResult_ this __TimeSpan_AsyncCallback_object (System.TimeSpan,System.AsyncCallback,object)' を JIT コンパイルしようとしています。

何か案は?

4

2 に答える 2

1

このような問題に遭遇することなく、モノタッチからいくつかのwcfサービスを呼び出しました-それで実行できます。

monotouch 内の jit エラーは通常、リンカによって何かが削除されたか、何らかの仮想抽象メソッドが呼び出されたことを示します (少なくとも私の最近の経験では)。

実際の iPhone プロジェクトのリンカー設定を確認できますか? -nolink に設定すると問題は解決しますか - http://docs.xamarin.com/ios/advanced_topics/linkerを参照してください

これで問題が解決しない場合、次のステップは、wcf で生成されたファイル内を調べることです。この場合のコールバック メソッドに関するコードを見つけて投稿できますか?

于 2012-05-07T15:21:11.610 に答える
0

このような問題がリンカに関連することはめったになく、署名がラッパーである場合はさらに少なくなります。ただし、これは Stuart の指示で簡単に確認できます。

IMO は、AOT コンパイラが必要なコードを予測できなかった場合に遭遇する可能性があります。これは、ジェネリックと値の型が混在している場合に発生する可能性があります (そして、生成された署名にTimeSpanがあります)。これは、シミュレーター (JIT が使用される場所) では機能しますが、アプリケーションを AOT するときは機能しません。

このような問題を解決する最善の方法は、 http://bugzilla.xamarin.comでバグ レポートを開き、問題を再現できるテスト ケースを添付することです。

于 2012-05-08T13:36:20.010 に答える