Ошибка открытия файла HPROF
Я получаю следующее исключение при попытке открыть файл 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)
Как это разрешить?
Спасибо
Ответы
Ответ 1
Файл hprof
, который вы получаете с Android, имеет конкретный формат Android. Вы должны преобразовать файл hprof
из ОС Android в стандартный формат hprof
. Для этого вы можете использовать инструмент hprof-conv
, который находится в AndroidSDK/tools/hprof-conv
.
Например:
hprof-conv android.hprof mat.hprof
И затем откройте mat.hprof в Memory Analyzer.
EDIT: hprof-conv может находиться в AndroidSDK/platform-tools/
в некоторых пакетах.
Ответ 2
Если вы используете Eclipse, просто измените следующее:
- Открыть настройки (из меню "Окно" )
- Перейдите в Android- > DDMS
- Измените действие HPROF на "Открыть в Eclipse"
Ответ 3
hprof-conv
местоположение инструмента было изменено.
Теперь он находится в AndroidSDK/platform-tools/hprof-conv