You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法从Android模拟器捕获.NET MAUI应用的dotnet-gcdump内存转储

.NET MAUI Android应用内存转储收集问题解决指南

问题说明

我按照官方文档排查Android平台.NET MAUI应用内存问题时遇到两个问题:

  1. 执行dotnet-gcdump ps命令,无法在列表中找到Android模拟器的进程ID;
  2. 手动获取进程ID后执行dotnet-gcdump collect -p 33972,出现写入失败错误(提示:Failed to write gcdump to file: Access to the path '...' is denied)。

解决步骤

一、让dotnet-gcdump识别Android进程

  • 确认MAUI应用正在模拟器中运行,且Android调试桥(adb)已连接到模拟器;
  • 打开终端/命令提示符,执行adb shell进入模拟器的shell环境;
  • 在shell内执行ps -A | grep dotnet,找到对应MAUI应用的dotnet进程ID;
  • 退出shell(输入exit),执行端口转发命令:adb forward tcp:9000 tcp:9000(端口可选用未被占用的其他值);
  • 重新执行dotnet-gcdump ps,此时应该能看到映射后的模拟器进程。

二、解决写入失败问题

  • 切换到有写入权限的目录(比如用户主目录:cd ~ 或 cd %USERPROFILE%)再执行收集命令;
  • 显式指定输出文件路径,避免权限问题:dotnet-gcdump collect -p 33972 -o ./maui-memory-dump.gcdump;
  • 检查dotnet-gcdump版本与应用使用的.NET版本是否匹配,执行dotnet-gcdump --version查看,版本不匹配则更新:dotnet tool update -g dotnet-gcdump;
  • 若仍有权限问题,尝试以管理员/root权限运行终端,再执行命令。

三、替代方案:使用Android Studio Profiler

如果dotnet-gcdump始终无法正常工作,可直接使用Android Studio的内存分析工具:

  • 打开Android Studio,连接到运行MAUI应用的模拟器;
  • 打开Profiler面板,选择内存模块,可实时监控内存使用,也能手动触发GC、捕获内存转储并分析。

内容的提问来源于stack exchange,提问作者Deepika

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 05:40:41