【问题标题】:Android Memory Analysis安卓内存分析
【发布时间】:2012-03-22 20:30:18
【问题描述】:

我现在必须在应用程序中搜索内存泄漏并且遇到工作流问题。此 (http://android-developers.blogspot.com/2011/03/memory-analysis-for-android.html) 博客文章指出:

如果您正在运行 ADT(其中包括 DDMS 的插件版本)并且 在 Eclipse 中也安装了 MAT,单击“dump HPROF” 按钮将自动进行转换(使用 hprof-conv)和 将转换后的 hprof 文件打开到 Eclipse 中(将由 垫)。

但是当我按下 eclipse 中的按钮并尝试打开 hprof 文件时,我得到了这个错误 - 所以我仍然需要进行转换:

打开堆转储“com.baseapp.foo.hprof”时出错。检查错误日志 了解更多详情。打开堆转储时出错 'com.baseapp.foo.hprof'。检查错误日志以获取更多详细信息。 未知的 HPROF 版本 (JAVA PROFILE 1.0.3) (java.io.IOException) 未知的 HPROF 版本(JAVA PROFILE 1.0.3)

有人知道我在这里做错了什么吗?我正在使用 ADT 16

【问题讨论】:

  • 是的,但是 smith324 的回答更有帮助——所以他得到了赏金

标签: android


【解决方案1】:

我的设置也遇到了这个问题,似乎有一系列步骤导致 eclipse 默认保存到文件(而不是进行转换并打开它)。

无论如何都要修复它:

首选项(全局 Eclipse 的)-> Android -> DDMS -> HPROF 操作 -> 设置为“在 Eclipse 中打开”(我之前在“保存到磁盘”上)

【讨论】:

  • 非常感谢 - 这就是我需要的提示!享受你的赏金!
【解决方案2】:

将 Android 操作系统中的 hprof 文件转换为标准 hprof 格式。为此,您可以使用位于 AndrodiSDK/tools/hprof-conv 的 hprof-conv 工具。

这样

hprof-conv android.hprof mat.hpof

然后在 Memory Analyzer 中打开 mat.hprof。

【讨论】:

  • 是的,我现在正在这样做,但这是一个糟糕的工作流程,并且博客声明“..将自动进行转换..” - 因此这个问题
  • 我没有遇到这个问题。我也有 ADT 16。
  • 所以你不必做“hprof-conv android.hprof mat.hpof”?
  • 是的......我之前遇到过这个问题,并且曾经通过我提到的肮脏方式解决这个问题。然后有一天我更新了所有内容并开始工作......尝试做同样的事情: P
  • 嗯,很奇怪。你用的是什么操作系统?
【解决方案3】:

错误消息表明错误日志中有其他详细信息(窗口 > 显示视图 > 错误日志)。您能否清除日志,然后重现问题,然后查看错误日志中是否出现任何内容以帮助查明问题?

【讨论】:

  • 此错误日志中只显示一个错误,并且似乎与 MAT/DDMS 没有连接:“无效的首选项页面路径:XML 语法”没有真实细节 eclipse.buildId=I20110613-1736 java.version=1.6.0_23 java.vendor=Sun Microsystems Inc. BootLoader 常量:OS=linux, ARCH=x86_64, WS=gtk, NL=en_US 命令行参数:-os linux -ws gtk -arch x86_64
猜你喜欢
  • 2011-01-09
  • 2017-09-18
  • 1970-01-01
  • 2018-09-29
  • 2012-06-29
  • 2011-12-13
  • 1970-01-01
  • 2011-07-04
相关资源
最近更新 更多