4

我在我的 android xamarin 应用程序中编写了一个解析 json 字符串的代码。

            var request = HttpWebRequest.Create(myUrl);
            request.ContentType = "application/json";
            request.Method = "GET";
            using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
            {            
                if (response.StatusCode != HttpStatusCode.OK)
                {
                    Console.Out.WriteLine("Error fetching data. Server returned status code: {0}", response.StatusCode);
                }
                using (StreamReader reader = new StreamReader(response.GetResponseStream()))
                {
                    string content = reader.ReadToEnd();
                    if (string.IsNullOrWhiteSpace(content))
                    {
                        Console.Out.WriteLine("Response contained empty body...");
                    }
                    else
                    {                        
                        List<BillsTableFields> billList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<BillsTableFields>>(content);                        
//return block
                    }
                }
            }    

但它会引发构建错误。任何帮助将不胜感激,因为我是 xamarin 的新手,在其他任何地方都找不到任何支持。我得到的构建错误如下

C:\Program Files\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(5,5):错误 MSB4018:“LinkAssemblies”任务意外失败。

Mono.Cecil.ResolutionException:无法解析 System.Diagnostics.TraceLevel

在 Mono.Linker.Steps.MarkStep.MarkType(TypeReference 参考)

在 Mono.Linker.Steps.MarkStep.MarkField(FieldReference 参考)

在 Mono.Linker.Steps.MarkStep.InitializeFields(TypeDefinition 类型)

在 Mono.Linker.Steps.MarkStep.InitializeType(TypeDefinition 类型)

在 Mono.Linker.Steps.MarkStep.InitializeAssembly(AssemblyDefinition 程序集)

在 Mono.Linker.Steps.MarkStep.Initialize()

在 Mono.Linker.Steps.MarkStep.Process(LinkContext 上下文)

在 Mono.Linker.Pipeline.Process(LinkContext 上下文)

在 MonoDroid.Tuner.Linker.Process(LinkerOptions 选项,LinkContext& 上下文)

在 Xamarin.Android.Tasks.LinkAssemblies.Execute()

在 Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()

在 Microsoft.Build.BackEnd.TaskBuilder.d__20.MoveNext() (MSB4018) (LoginApptest)

4

1 回答 1

3

如果链接器因“未能找到类型等等”而失败,那么这通常意味着您在应用程序的某个位置使用了桌面 .Net 库。如果是 JSON.Net,去掉桌面程序集,使用组件存储上的 JSON.Net 版本(这是 Xamarin 的 NuGet 版本,除了有些东西是付费的)。

我还会确保您拥有最新版本的 Xamarin.Android。

于 2013-04-25T12:01:07.780 回答