Xamarin android 应用在调用 api 时抛出对象未设置
Xamarin android app throws object not set when calling api
所以我有 android 应用程序使用以下结构向 api 发出多个请求。请注意,这在 iOS 中有效,并且这似乎在更新 xamarin 表单后开始发生。
public async Task<Rootobject> GetData()
{
using (var httpClient = new HttpClient())
{
var response = await httpClient.GetAsync(url); //throws exception here. See screenshot
}
}
这适用于我的所有请求,除了一个,唯一的区别是这个请求是从任务工厂内部调用的,如下所示:
tasks.Add(Task.Factory.StartNew(async()=>
{
var data = await GetData();
}));
并调用如下:
Task.WhenAll(tasks).ContinueWith(t =>
{
IsBusy = false;
}).GetAwaiter();
真正让我感到困惑的部分是这在 iOS 中按预期工作。有谁知道我可以做些什么来克服这个问题?
结果 api 根本不是问题,尽管它看起来像它,因为这是调试器会崩溃的地方,但结果是 https://github.com/alexrainman/CarouselView/issues/557 并且仍然是一个问题。我的解决方法是在 android 时使用自定义轮播视图而不是插件。希望这能帮助那些不会像我一样花费近两天时间的人。
所以我有 android 应用程序使用以下结构向 api 发出多个请求。请注意,这在 iOS 中有效,并且这似乎在更新 xamarin 表单后开始发生。
public async Task<Rootobject> GetData()
{
using (var httpClient = new HttpClient())
{
var response = await httpClient.GetAsync(url); //throws exception here. See screenshot
}
}
这适用于我的所有请求,除了一个,唯一的区别是这个请求是从任务工厂内部调用的,如下所示:
tasks.Add(Task.Factory.StartNew(async()=>
{
var data = await GetData();
}));
并调用如下:
Task.WhenAll(tasks).ContinueWith(t =>
{
IsBusy = false;
}).GetAwaiter();
真正让我感到困惑的部分是这在 iOS 中按预期工作。有谁知道我可以做些什么来克服这个问题?
结果 api 根本不是问题,尽管它看起来像它,因为这是调试器会崩溃的地方,但结果是 https://github.com/alexrainman/CarouselView/issues/557 并且仍然是一个问题。我的解决方法是在 android 时使用自定义轮播视图而不是插件。希望这能帮助那些不会像我一样花费近两天时间的人。