2012-03-05 33 views
9

我必須在應用程序中搜索內存泄漏,並且存在工作流問題。這(http://android-developers.blogspot.com/2011/03/memory-analysis-for-android.html)的博客文章中指出:Android內存分析

如果你正在運行ADT(包括DDMS的插件版本)和 安裝在Eclipse MAT爲好,點擊「轉儲HPROF」 將按鈕自動執行轉換(使用hprof-conv)並打開轉換的hprof文件到Eclipse中(這將通過 MAT打開)。

但文我按日食中的​​按鈕,並嘗試打開該文件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

+0

:你檢查了我的答案嗎? – Sameer 2012-03-13 09:15:27

+0

是的,但從smith324的答案是更有幫助的方式 - 所以他得到了賞金 – ligi 2012-03-14 18:53:05

+0

沒問題,他應得的。 – Sameer 2012-03-15 05:49:05

回答

24

我在我的設置上也有這個問題,它似乎有一系列的步驟導致eclipse默認保存到文件(而不是轉換並打開它)。

反正來解決它:

首(佔全球的Eclipse的) - > Android的 - > DDMS - > HPROF操作 - >設置爲 「在Eclipse中打開」(我的是以前在 「保存到磁盤」)

+0

具有相同的作爲OP的問題,這工作 – zapl 2012-03-13 13:23:21

+0

非常感謝 - 這是我需要的提示!享受你的賞金! – ligi 2012-03-13 16:46:24

9

將hprof文件從Android OS轉換爲標準hprof格式。爲此,您可以使用位於AndrodiSDK/tools/hprof-conv的hprof-conv工具。

像這樣

hprof-conv android.hprof mat.hpof 

然後在內存分析器開放mat.hprof。

+0

是的我現在正在這樣做,但這是一個糟糕的工作流程和博客狀態「..會自動做轉換..」 - 因此這個問題 – ligi 2012-03-05 11:20:07

+0

我不是面臨這個問題。我也有ADT 16. – 2012-03-05 11:23:01

+0

所以你不必做「hprof-conv android.hprof mat.hpof」? – ligi 2012-03-05 11:24:21

1

錯誤消息表明錯誤日誌中有其他詳細信息(窗口>顯示視圖>錯誤日誌)。您是否可以清除日誌,然後重現問題,然後查看錯誤日誌中是否顯示任何內容以幫助查明問題?

+0

只有一個錯誤出現在這個錯誤日誌中,似乎沒有連接到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 – ligi 2012-03-12 11:20:56