我为我的应用程序创建一个构建并在设备上运行。虽然它在模拟器上唤醒但不在设备上工作。并导致此错误:
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 MonoTouch
解析 json,但我不知道它尚未在设备上运行的问题是什么。
编辑:我的应用程序解决方案中没有任何组件文件夹。我从 xamaring 组件站点下载 JSON.Net dll 并将其替换为我的 Newtonsoft.JSon.monotouhch.dll 但它无法正常工作。
我在 xamarin studio 上找到了 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]
我不明白,这是什么?