1

アプリケーションのビルドを作成し、デバイスで実行します。エミュレーターで起動しているが、デバイスで動作していないとき。そしてこのエラーを引き起こします:

  Exception in Class: BaseIOAddOn 
Line : 0 
and Method:ParseGeneralSettingsFromSettingJson 
with message Attempting to JIT compile method 'Newtonsoft.Json.Linq.JToken:Value<int> (object)' while running with --aot-only. See http://docs.xamarin.com/ios/about/limitations for more information.

私はjson.NET 4.0 R3 for MonoTouchjsonの解析に使用していますが、まだデバイスで動作していないという問題が何であるかわかりません。

編集: アプリケーション ソリューションにコンポーネント フォルダーがありません。xamaring コンポーネント サイトから JSON.Net dll をダウンロードし、それを Newtonsoft.JSON.monotouhch.dll に置き換えましたが、まだ機能していません。

xamarin スタジオで Components フォルダーを見つけ、このフォルダーからアプリにコンポーネントを追加しましたが、それでも上記のエラーが発生します。エラーが0行目にあると言う理由を混乱させています。

上記の行0の例外では、エラーコンテンツと私のコードの優先度から、このコードからのものだと思います:

try {
            Dictionary <string  ,string > generalSettings = new Dictionary <string ,string > ();
            JObject jsonUnits = JObject.Parse (Response);
            var settingsList = jsonUnits ["settings"] [SettingTypes .AppSettings.GetDescription ()];
            int i = 0;
            var tmp_factor = settingsList [i.ToString ()];
            while (tmp_factor!=null) {
                generalSettings  .Add (tmp_factor ["name"].ToString (), tmp_factor ["value"].ToString ());
                i++;
                tmp_factor = settingsList [i.ToString ()];
            }
            var addOnComplexStatus = jsonUnits["settings"][SettingTypes .GetAddon  .GetDescription ()].Value <int>("status");

            generalSettings .Add (AppConstants .XmlAddOnComplexKey.GetDescription() ,addOnComplexStatus .ToString ());

            return generalSettings;
        } catch (Exception ex) {
            Common .HandleException (ex);
            return null;
        }

特に:

var addOnComplexStatus = jsonUnits["settings"][SettingTypes .GetAddon  .GetDescription ()].Value <int>("status");

この記事を見つけました: http://www.brettnagy.com/post/2009/11/21/Using-JsonNET-with-MonoTouch.aspxこのコードを使用して言った:[MonoTouch.Foundation.Preserve] 私はそれを理解していません、これは何ですか?

4

2 に答える 2

0

助けてくれてありがとう。このコード行を変更したとき:

var addOnComplexStatus = jsonUnits["settings"][SettingTypes .GetAddon  .GetDescription ()].Value <int>("status");

これに:

var addOnComplexStatus = jsonUnits["settings"][SettingTypes .GetAddon  .GetDescription ()]["status"].ToString ();

問題は解決しました。:)

于 2013-04-13T10:00:07.827 に答える