c# - 在 Google Play 控制台中分析或收集 ANR 的 Xamarin 堆栈跟踪

标签 c# android xamarin.android

我们在 Google Play 控制台中获取了一些“背景”(在广播接收器上)ANR 的堆栈跟踪。但看起来都是这样的:

"main" prio=5 tid=1 Native
  | group="main" sCount=1 dsCount=0 obj=0x7523b718 self=0xec085400
  | sysTid=13422 nice=0 cgrp=bg_non_interactive sched=0/0 handle=0xef6bb534
  | state=S schedstat=( 0 0 0 ) utm=74 stm=24 core=7 HZ=100
  | stack=0xff1ec000-0xff1ee000 stackSize=8MB
  | held mutexes=
  #00  pc 0000000000017520  /system/lib/libc.so (syscall+28)
  #01  pc 0000000000047cbd  /system/lib/libc.so (_ZL33__pthread_mutex_lock_with_timeoutP24pthread_mutex_internal_tbPK8timespec+520)
  #02  pc 000000000017e45c  /data/app/com.company.package-2/lib/arm/libmonosgen-2.0.so (???)

因此我们无法获得有关所发生情况的任何有用信息 - 代码分析没有给出任何信息。 有没有办法收集 ANR 事件的 C# 堆栈?

最佳答案

有一个名为 Xamarin.ANRWatchDog 的包可以通过 Nuget 检测 Android ANR 错误(应用程序未响应)或来自Github 。它是一个监视 ANR 的线程,然后通过所有线程的堆栈跟踪引发错误。它从 Salomon Brys's ANR-WatchDog 移植到 Xamarin 。

关于c# - 在 Google Play 控制台中分析或收集 ANR 的 Xamarin 堆栈跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47767706/

相关文章:

c# - Web api 路由 - 默认操作与自定义操作映射两次

Android FileProvider 找不到文件

android - 我现在如何下载android 2.0 sdk

c# - 如何在 Xamarin 跨平台应用程序中自动从一个屏幕导航到另一个屏幕?

jquery-mobile - 在 Xamarin 解决方案中使用 jQuery Mobile 是否可行?

c# - 如何通过 CLSID 在 C# 中实例化 COM 对象?

c# - 检测到 ContextSwitchDeadlock

c# 派生类型到组合框

java - 将字符串日期与当前长时间进行比较

android - 如何使用 Xamarin/Monodroid 设置自定义标题