Xamarin iOS HttpClient崩溃

Xamarin iOS HttpClient崩溃,xamarin,xamarin.ios,Xamarin,Xamarin.ios,这是我的密码 HttpClient client = new HttpClient(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); var jsonstring = await client.GetStringAsync("https://asdasdadasd" +

这是我的密码

         HttpClient client = new HttpClient();
         client.DefaultRequestHeaders.Accept.Add(new 
         MediaTypeWithQualityHeaderValue("application/json"));
         var jsonstring = await client.GetStringAsync("https://asdasdadasd" + 
              url);
出现以下错误:

2019-03-29 11:18:43.901独立应用程序iOS[3859:3548233] [AppCenterCrash]错误:+[MSWrapperLogger MSWrapperLog:tag:level://7未处理的异常: UIKit.UIKitThreadAccessException:UIKit一致性错误:您是 调用只能从UI线程调用的UIKit方法。在 UIKit.UIApplication.EnsureUIThread[0x00020]输入

Library/Frameworks/Xamarin.iOS.framework/Versions/12.6.0.16/src/Xamarin.iOS/UIK

i/uiApvest.Cs:89在UIKIT.UigestureReLogGnIZ.RevVeTeGraseNo.NSObjor目标,St.ItpTR动作[0x0000 ] /Library/Frameworks/Xamarin.iOS.framework/Versions/12.6.0.16/src/Xamarin.iOS/UIKit/uigesturecognizer.g.cs:342 在中的UIKit.UIgestureRecognitizer.OnDispose[0x00016]处 /Library/Frameworks/Xamarin.iOS.framework/Versions/12.6.0.16/src/Xamarin.iOS/UIKit/uigesturecognizer.cs:41 在UIKit.UIgestureRecognitor.Dispose System.Boolean disposing中 [0x00000]英寸 /Library/Frameworks/Xamarin.iOS.framework/Versions/12.6.0.16/src/Xamarin.iOS/UIKit/uigesturecognizer.g.cs:959 在No.NasObjut.FialId[ 0x0000 ]中 /Library/Frameworks/Xamarin.iOS.framework/Versions/12.6.0.16/src/Xamarin.iOS/Foundation/NSObject2.cs:143

有什么想法吗


注释await client.GetStringAsync可以使应用程序正常工作。我已经尝试在主线程上使用设备调用来运行它,即使我认为没有任何理由需要这样做?我尝试了.result而不是wait,我尝试了getasync.content.readstringasync,但始终存在相同的问题。

看起来您需要从错误内容在UI线程上进行此调用

您是否尝试过确保此代码在UI线程上运行?有关如何执行此操作的详细信息,请参阅

基本上,你应该做一些类似的事情:

InvokeOnMainThread ( () => {
    // code which needs to be run on UI thread
});

提供包含从何处调用上述代码的。您没有提供足够的详细信息,我们无法确定问题的实际原因。只有这三行代码,没有其他内容,正在对按钮的单击事件运行。如果放置在选择器的selectedindexchanged中,同样的错误也会发生。它在主线程上运行,我甚至尝试调用主线程。我最终通过降级到Visual Studio 2017来“修复”它。如果我回到Visual Studio 2019,同样的事情也会发生,所以我假设这是2019年附带的Xamarin.IOS版本中的某种错误。与Xamarin.IOS github的report上的文件问题相同。是的,问题是相同的,但如何解决这个问题您使用的是哪个HTTP客户端实现?在ios构建部分的ios项目设置中选中它