Xamarin Android不再打印MONO GC日志消息问题咨询
Xamarin.Android 恢复Mono GC详细日志输出解决方案
该问题确实是Xamarin.Android 11.0及后续版本的默认行为变更导致:官方为了减少调试阶段的冗余日志输出,默认关闭了Mono运行时GC的底层详细打印,仅保留基础的GC清理摘要和ART层面的GC日志。
按照以下步骤操作即可恢复你需要的GC_BRIDGE、GC_MAJOR、GC_MAJOR_SWEEP等日志输出:
步骤1:修改environment.txt配置
在你的Xamarin.Android项目根目录下新建/编辑environment.txt文件,将文件的生成操作设置为AndroidEnvironment(右键文件->属性->生成操作中选择),在文件中添加以下配置项:
MONO_LOG_LEVEL=debug MONO_LOG_MASK=gc MONO_GC_DEBUG=log-level=info,log-opt=all
以上配置的作用是限定仅输出Mono GC相关的调试日志,同时开启GC全维度的打印开关,包含桥接处理、分代回收、大对象堆统计等你需要的所有信息。
步骤2:确认调试配置未禁用Mono日志
打开Xamarin.Android项目的属性页,进入Android选项->调试分类,确保禁用Mono调试日志的勾选框处于未选中状态。
步骤3:正确过滤logcat日志
重新编译安装调试版应用后,使用以下adb命令过滤日志,即可看到完整的Mono GC日志:
adb logcat -s Mono:D mono-rt:D monodroid-gc:D
注意:仅调试构建会输出上述GC详细日志,Release构建为了性能默认关闭了所有Mono调试打印,无法通过配置开启。
内容的提问来源于stack exchange,提问作者BitBot
相关产品推荐
相关产品推荐

