HPROF फ़ाइल खोलने में त्रुटि: IOException: अज्ञात HPROF संस्करण


121

Debug.dumpHprofDataस्मृति विश्लेषक के साथ HPROF फ़ाइल (द्वारा बनाई गई ) खोलने की कोशिश करते समय मुझे निम्नलिखित अपवाद मिल रहे हैं :

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)

मैं इसका कैसे समाधान करूं?


विंडोज़ सिस्टम के तहत आपको यह पोस्ट मददगार मिल सकती है stackoverflow.com/questions/14168485/…
sivi

जवाबों:


298

hprofAndroid से आपको मिलने वाली फ़ाइल में Android विशिष्ट प्रारूप है। आपको hprofएंड्रॉइड ओएस से फ़ाइल ले को मानक hprofप्रारूप में परिवर्तित करना चाहिए । इसके लिए आप hprof-convउस टूल का उपयोग कर सकते हैं जो कि पर स्थित है AndroidSDK/tools/hprof-conv

उदाहरण के लिए:

hprof-conv android.hprof mat.hprof

और फिर मेमोरी एनालाइज़र में मैट खोलें।

संपादित करें: AndroidSDK/platform-tools/कुछ बंडलों के नीचे hprof-conv स्थित हो सकता है ।


6
@inazaruk hprof-conv डंप बटन पर क्लिक करने पर स्वचालित रूप से चलता था, मुझे यकीन नहीं है कि एडीटी के किस संस्करण ने यह काम करना बंद कर दिया है लेकिन इसकी संभावना एक बग है
smith324

1
@ smith234, यह डीडीएमएस में बटन के लिए सही हो सकता है। लेकिन जब Debug.dumpHprofData() उपयोग किया जाता है तो रूपांतरण मैन्युअल रूप से किया जाना चाहिए।
इजारुक

फिर भी मुझे उपकरण निर्देशिका में 'अनुमति अस्वीकृत' त्रुटि मिल रही थी। काम करने के लिए मुझे उस डायरेक्टरी में परमिशन लेनी पड़ी।
इगोरगानापल्स्की

टाइपो: MAT के नवीनतम संस्करण के लिए आवश्यक है कि फ़ाइल नाम एक्सटेंशन hprof है, hpof नहीं जैसा कि ऊपर दिए गए उदाहरण में है।
greg7gkb

10
सिर्फ़ एक हेड-अप, मेरा
hprof- कॉन्डोम

41

यदि आप ग्रहण का उपयोग कर रहे हैं, तो बस निम्नलिखित बदलें:

  1. प्राथमिकताएँ खोलें (विंडो मेनू से)
  2. Android-> DDMS पर नेविगेट करें
  3. HPROF कार्रवाई को "ग्रहण में खोलें" में बदलें

विंडोज 7 64 बिट में, मैं hprof-convटूल का उपयोग करके कन्वर्ट नहीं कर सका , यह सिर्फ कुछ भी नहीं था। तो अपने तरीके की कोशिश की और यह काम करता है! मुझे सिर्फ MAT को ग्रहण में स्थापित करना चाहिए और यह अब पूरी तरह से काम करता है। धन्यवाद
१०:४३ पर पॉलियस विन्दिज़ेल्किस

3
यह समझाने के लिए अपडेट करना अच्छा हो सकता है कि उपयोगकर्ता को पहले ग्रहण प्राथमिकताएं खोलनी चाहिए और फिर बाएं हाथ के मेनू से एंड्रॉइड का चयन करना चाहिए
मिक

1
लूना में मुझे MAT को मैन्युअल रूप से स्थापित करने की आवश्यकता है: मदद-> नया सॉफ्टवेयर स्थापित करें: download.eclipse.org/mat/1.4/update-site
joecks

मेरे एक्लिप्स मार्स.2 (4.5.2) (विन 10) "ओपन इन एक्लिप्स" पहले से सेट है और MAT इंस्टॉल है, फिर भी मुझे "अज्ञात HPROF संस्करण" त्रुटि मिलती है। मुझे फ़ाइल को "hprof-conv" के साथ बदलना था।
नेफ

7

hprof-conv उपकरण का स्थान बदल गया।

यह अब स्थित है AndroidSDK/platform-tools/hprof-conv

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.