HPROF dosyasını açma hatası: IOException: Bilinmeyen HPROF Sürümü


121

Debug.dumpHprofDataMemory Analyzer ile HPROF dosyasını (oluşturan ) açmaya çalışırken aşağıdaki istisnayı alıyorum :

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)

Bunu nasıl çözerim?


Windows sistemi altında bu
yazıyı

Yanıtlar:


298

hprofAndroid aldığım dosya android belirli biçimi vardır. Sen dönüştürmek gerekir hprofstandart haline Android OS dosya take hprofbiçimi. Bunun için hprof-convadresinde bulunan aracı kullanabilirsiniz AndroidSDK/tools/hprof-conv.

Örneğin:

hprof-conv android.hprof mat.hprof

Ve sonra Memory Analyzer'da mat.hprof'u açın.

DÜZENLEME: hprof-conv AndroidSDK/platform-tools/, bazı paketlerde altında bulunabilir .


6
@inazaruk hprof-conv, döküm düğmesine tıklandığında otomatik olarak çalışıyordu, bunun hangi ADT sürümünün çalışmayı durdurduğundan emin değilim, ancak muhtemelen bir hata
smith324

1
@ smith234, DDMS'deki düğme için doğru olabilir. Ancak Debug.dumpHprofData() kullanıldığında dönüştürme manuel olarak yapılmalıdır.
inazaruk

Yine de araçlar dizininde 'izin reddedildi' hatası alıyordum. Çalışması için o dizindeki izinleri chmod etmem gerekiyordu.
IgorGanapolsky

Yazım hatası: MAT'ın en son sürümü, yukarıdaki örnekte olduğu gibi dosya adı uzantısının hpof değil hprof olmasını gerektirir.
greg7gkb

10
sadece bir uyarı, benim hprof-conv, sdk / tools altında birilerinin kaçırması ihtimaline karşı bunun yerine sdk \ platform-tools altındaydı
cjayem13

41

Eclipse kullanıyorsanız, aşağıdakileri değiştirmeniz yeterlidir:

  1. Tercihleri ​​Aç (Pencere menüsünden)
  2. Android-> DDMS'ye gidin
  3. HPROF eylemini "Eclipse'de Aç" olarak değiştirin

Windows 7 64bit'te, hprof-convaracı kullanarak dönüştüremedim , sadece hiçbir şey olmadı. Metodunuzu denedim ve işe yarıyor! Tutulma için MAT yüklemem gerekiyor ve şimdi mükemmel çalışıyor. teşekkürler
Paulius Vindzigelskis

3
Kullanıcının önce Eclipse tercihlerini açması ve ardından soldaki menüden Android'i seçmesi gerektiğini açıklamak için güncelleme yapmak iyi olabilir
Mick

1
Luna'da
MAT'ı

Eclipse Mars.2'de (4.5.2) (Win 10) "Eclipse'de Aç" zaten ayarlanmış ve MAT yüklü, ancak yine de "bilinmeyen HPROF sürümü" hatası alıyorum. Dosyayı "hprof-conv" ile dönüştürmek zorunda kaldım.
Neph

7

hprof-conv araç konumu değiştirildi.

Şimdi şu adreste bulunuyor: AndroidSDK/platform-tools/hprof-conv

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.