Beim Versuch, eine HPROF-Datei (erstellt von Debug.dumpHprofData
) mit Memory Analyzer zu öffnen, wird die folgende Ausnahme angezeigt :
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)
Wie löse ich das?
android
memory-leaks
dump
Asahi
quelle
quelle
Antworten:
Die
hprof
Datei, die Sie von Android erhalten, hat ein Android-spezifisches Format. Sie solltenhprof
File Take von Android OS in das Standardformathprof
konvertieren. Hierfür können Sie einhprof-conv
Tool verwenden, das sich unter befindetAndroidSDK/tools/hprof-conv
.Beispielsweise:
Öffnen Sie dann mat.hprof im Memory Analyzer.
BEARBEITEN: hprof-conv befindet sich möglicherweise
AndroidSDK/platform-tools/
in einigen Bundles unter.quelle
Debug.dumpHprofData()
Verwendung sollte die Konvertierung jedoch manuell erfolgen.Wenn Sie Eclipse verwenden, ändern Sie einfach Folgendes:
quelle
hprof-conv
Tool konvertieren , es gab einfach nichts. Also probiere deine Methode aus und es funktioniert! Ich sollte nur MAT installieren müssen, um Eclipse zu spielen, und es funktioniert jetzt perfekt. dankehprof-conv
Werkzeugposition wurde geändert.Es befindet sich jetzt bei
AndroidSDK/platform-tools/hprof-conv
quelle