C# 异步/等待方法使Android中的web服务响应崩溃,但相同的代码在xamarin本机应用程序的Windows Phone和iOS应用程序中成功运行
异步/等待方法使Android中的web服务响应崩溃,但相同的代码在xamarin本机应用程序的Windows Phone和iOS应用程序中成功运行 Xamarin本机应用程序PCL 我使用可移植类库创建了一个本机应用程序 我请求RESTAPI提供以下响应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解决方案资源管理器 使用上述代码,我可以
{
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");