android - NativeMessageHandler+System.OperationCanceledException:操作被取消
问题描述
我们在 Xamarin iOS 和 Android 中开发了一个应用程序。
我们使用 Azure 服务和 AppCenter 进行崩溃日志报告。
对于 Android,我们收到了大量的以下日志
ModernHttpClient
NativeMessageHandler+<SendAsync>c__async0.MoveNext ()
System.Net.Http
HttpClient+<SendAsyncWorker>d__49.MoveNext ()
Microsoft.WindowsAzure.MobileServices
MobileServiceHttpClient+<SendRequestAsync>d__1d.MoveNext ()
Microsoft.WindowsAzure.MobileServices
MobileServiceHttpClient+<RequestAsync>d__4.MoveNext ()
Microsoft.WindowsAzure.MobileServices
MobileServiceClient+<InternalInvokeApiAsync>d__b.MoveNext ()
Microsoft.WindowsAzure.MobileServices
MobileServiceClient+<InvokeApiAsync>d__6.MoveNext ()
我试图搜索它,但无法找出为什么会被记录,
错误日志信息如下:
NativeMessageHandler+<SendAsync>c__async0.MoveNext ()
System.OperationCanceledException: The operation was canceled.
O
非常感谢任何帮助或想法如何更深入地调试此错误日志。
解决方案
MS App Center 为您提供每次崩溃的报告。您可以从这个 MSDN 视频的 14:40查看如何查看所提供的详细信息。他们甚至允许您记录现在发生崩溃的人的用户名。
因此,如果您实现如下所示的 Analytics 事件,您可以准确地弄清楚如何复制错误并放置异常捕获点。
Analytics.TrackEvent("PageView: LoginPage");
Analytics.TrackEvent("SelectAction: LoginButton");
从我在 HTTPClient 层(来自 MoveNext)中看到的内容,它似乎与异步编程有关。我建议对您的代码进行以下更改,以确保它遵循Microsoft 的 Brandon Minnick 展示的最佳实践。您还可以分享一些 Web 服务层代码以帮助我们更多
推荐阅读
- php - 每次我尝试使用 Swift 和 Alamofire 将数据发布到 MySQL 数据库时,数据显示为空?
- javascript - 从rest api获取数据并在html页面中以table的形式打印出来
- logstash - Logstash 中的 Grok 模式格式
- c# - 如何在c#中将动态文本从英语翻译成西班牙语
- mysql - 如何最小化sql查询
- continuous-integration - Chef 服务器可以有多个工作站吗?
- powershell - 在第一个进程完成后运行两个自动退出批处理而不退出命令提示符
- python - 使用 Python 解析 YAML 文件,以提取唯一/非唯一关键字对之间的文本块
- python - 使用 python 将自动录音转换为文本
- react-native - React Native 使用 IOS 的 Jar 库