web-dev-qa-db-fra.com

erreur d'ouverture du fichier HPROF: IOException: version HPROF inconnue

J'obtiens l'exception suivante lorsque j'essaie d'ouvrir le fichier HPROF (créé par Debug.dumpHprofData) avec 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)

Comment résoudre ça?

118
Asahi

Le fichier hprof que vous obtenez à partir de Android a Android format spécifique. Vous devez convertir le fichier hprof à partir de Android OS au format standard hprof. Pour cela, vous pouvez utiliser hprof-conv outil situé à AndroidSDK/tools/hprof-conv.

Par exemple:

hprof-conv Android.hprof mat.hprof

Et puis ouvrez mat.hprof dans Memory Analyzer.

EDIT: hprof-conv peut être situé sous AndroidSDK/platform-tools/ dans certains bundles.

289
inazaruk

Si vous utilisez Eclipse, modifiez simplement les éléments suivants:

  1. Ouvrir les préférences (depuis le menu Fenêtre)
  2. Naviguez vers Android-> DDMS
  3. Modifiez l'action HPROF en "Ouvrir dans Eclipse"
41
Apirak Lunla

hprof-conv l'emplacement de l'outil a été modifié.

Il est maintenant situé au AndroidSDK/platform-tools/hprof-conv

6
Sumoanand