HPROFファイルを開くときに次の例外が発生します(Debug.dumpHprofData
)Memory Analyzerを使用:
Java.io.IOException: Unknown HPROF Version (Java PROFILE 1.0.3)
at org.Eclipse.mat.hprof.AbstractParser.readVersion(AbstractParser.Java:124)
at org.Eclipse.mat.hprof.Pass1Parser.read(Pass1Parser.Java:69)
at org.Eclipse.mat.hprof.HprofIndexBuilder.fill(HprofIndexBuilder.Java:65)
at org.Eclipse.mat.parser.internal.SnapshotFactoryImpl.parse(SnapshotFactoryImpl.Java:203)
at org.Eclipse.mat.parser.internal.SnapshotFactoryImpl.openSnapshot(SnapshotFactoryImpl.Java:114)
at org.Eclipse.mat.snapshot.SnapshotFactory.openSnapshot(SnapshotFactory.Java:143)
at org.Eclipse.mat.snapshot.SnapshotFactory.openSnapshot(SnapshotFactory.Java:123)
at org.Eclipse.mat.ui.snapshot.ParseHeapDumpJob.run(ParseHeapDumpJob.Java:56)
at org.Eclipse.core.internal.jobs.Worker.run(Worker.Java:55)
どうすれば解決できますか?
Androidから取得するhprof
ファイルには、Android固有の形式があります。 Android OSから取得したhprof
ファイルを標準のhprof
形式に変換する必要があります。これには、hprof-conv
にあるAndroidSDK/tools/hprof-conv
ツールを使用できます。
例えば:
hprof-conv Android.hprof mat.hprof
そして、Memory Analyzerでmat.hprofを開きます。
編集:hprof-convは、いくつかのバンドルのAndroidSDK/platform-tools/
の下にあるかもしれません。
Eclipseを使用している場合は、次を変更します。
hprof-conv
ツールの場所が変更されました。
現在はAndroidSDK/platform-tools/hprof-conv
にあります