C# 异步/等待方法使Android中的web服务响应崩溃,但相同的代码在xamarin本机应用程序的Windows Phone和iOS应用程序中成功运行

C# 异步/等待方法使Android中的web服务响应崩溃,但相同的代码在xamarin本机应用程序的Windows Phone和iOS应用程序中成功运行,c#,.net,web-services,xamarin,xamarin.android,C#,.net,Web Services,Xamarin,Xamarin.android,异步/等待方法使Android中的web服务响应崩溃,但相同的代码在xamarin本机应用程序的Windows Phone和iOS应用程序中成功运行 Xamarin本机应用程序PCL 我使用可移植类库创建了一个本机应用程序 我请求RESTAPI提供以下响应 { code: 200, status: "ok", message: "hello" } 我在xamarin.forms中的可移植类库代码是 test.xaml.cs 我的Visual studio解决方案资源管理器 使用上述代码,我可以

异步/等待方法使Android中的web服务响应崩溃,但相同的代码在xamarin本机应用程序的Windows Phone和iOS应用程序中成功运行

Xamarin本机应用程序PCL

我使用可移植类库创建了一个本机应用程序

我请求RESTAPI提供以下响应

{
code: 200,
status: "ok",
message: "hello"
}
我在xamarin.forms中的可移植类库代码是

test.xaml.cs

我的Visual studio解决方案资源管理器

使用上述代码,我可以成功地在iOS和Windows手机应用程序中显示输出

但当我运行Android应用程序时,应用程序崩溃,不显示输出

当我调试Android程序时,光标会移到这一行之后

var result = await
cl.GetStringAsync("http://192.168.1.125/apps/jara/web/api/user/test");
在这一行之后,停止程序的执行

这意味着它不会等待方法完成执行

出现错误后查看屏幕


如何防止这个错误?

经过大量的研发,我终于解决了这个问题

网络连接问题

在Android Emulator中设置网络连接后,我已经解决了这个问题

按照以下步骤操作

打开VS Android Emulator>>进入设置>>打开WIFI>>

有有线eth1网络可用

有线eth1网络长按

然后单击>>修改网络>>将IP设置更改为静态>>

更改网络的IP地址

在这个设置之后,我已经解决了我的问题,并从RESTAPI得到了响应


谢谢。

您能发布异常的内容吗?您应该避免异步void方法。如果它未经处理,则会有东西抛出异常,而您没有捕获到任何异常。为什么不试试{你的东西}抓住。。。看看例外情况是什么?我已经尝试使用try…catch。。。。调试游标已成功执行try块代码。。。但在下线代码执行结束后。。。var result=await cl.GetStringAsync192.168.1.125/apps/jara/web/api/user/test;
namespace NativeAppsWithWCF
{
    public class App : Application
    {
        public App()
        {
            MainPage = new test();
        }
        protected override void OnStart()
        {
            // Handle when your app starts
        }

        protected override void OnSleep()
        {
            // Handle when your app sleeps
        }

        protected override void OnResume()
        {
            // Handle when your app resumes
        }
    }
}
var result = await
cl.GetStringAsync("http://192.168.1.125/apps/jara/web/api/user/test");