बग की रिपोर्ट करें

गड़बड़ी की शिकायत करने के लिए, इस पेज पर दिया गया तरीका अपनाएं. गड़बड़ियों को ठीक करने के लिए सीमित संसाधन होते हैं. इसलिए, जिन गड़बड़ियों के बारे में पूरी जानकारी होती है उन्हें प्राथमिकता दी जाती है. अधूरी गड़बड़ी की रिपोर्ट बंद कर दी जाती हैं. अगर ऐसा होता है, तो ज़्यादा जानकारी के साथ अपने गड़बड़ी की शिकायत फिर से सबमिट करें.

यह पक्का करने के लिए कि आपने किसी ऐसे गड़बड़ी की शिकायत न की हो जिसे पहले ही ठीक कर दिया गया है, पक्का करें कि आपने टूल के नए वर्शन का इस्तेमाल किया हो. Android Studio के समस्या ट्रैकर पर जाकर, ऐसी ही समस्याओं को भी खोजा जा सकता है. इससे यह पता चलता है कि आपको जो समस्या आ रही है उसकी शिकायत पहले की जा चुकी है या नहीं.

गड़बड़ी की शिकायत करने का तरीका

किसी गड़बड़ी की शिकायत करने के लिए, यह तरीका अपनाएं:

  1. Android Studio में गड़बड़ी की रिपोर्ट खोलने के लिए, सहायता > गड़बड़ी की रिपोर्ट सबमिट करें को चुनें.

    गड़बड़ी की शिकायत करने का यह सबसे आसान तरीका है. इससे, गड़बड़ी की रिपोर्ट में आपके Android Studio के वर्शन, Kotlin या Java के वर्शन, और सिस्टम की जानकारी अपने-आप भर जाती है. यह जानकारी, समस्या को ठीक करने के लिए ज़रूरी होती है.

    आपके पास अपना गड़बड़ी का ब्यौरा यहां दर्ज करने और वर्शन की जानकारी खुद जोड़ने का विकल्प भी है.

  2. गड़बड़ी की जानकारी वाली रिपोर्ट अटैच करें, ताकि हम आपकी समस्या को डीबग कर सकें. गड़बड़ी की जानकारी देने वाली रिपोर्ट की ज़िप फ़ाइल जनरेट करने के लिए, सहायता > लॉग और गड़बड़ी की जानकारी देने वाला डेटा इकट्ठा करें पर क्लिक करें.

  3. समस्या को दोहराने के लिए, सिलसिलेवार तरीके से बताएं कि क्या करना होगा. ज़्यादा से ज़्यादा जानकारी सबमिट करें. इसमें कोड स्निपेट, GitHub प्रोजेक्ट, और स्क्रीनशॉट या रिकॉर्डिंग शामिल हैं.

  4. समस्या के बारे में पूरी जानकारी दें. बताएं कि आपको क्या नतीजा चाहिए था और आपको क्या नतीजा मिला.

  5. बग रिपोर्ट के लिए, ब्यौरा देने वाला टाइटल चुनें. ज़्यादा जानकारी देने वाले टाइटल का इस्तेमाल करने से, समस्या के हिसाब से क्रम से लगाना आसान हो जाता है.

कुछ गड़बड़ियों के लिए, हमें ज़्यादा जानकारी चाहिए. इस बारे में यहां बताया गया है:

Android Studio के बग के बारे में जानकारी

Android Studio से जुड़ी गड़बड़ियों की शिकायत करने के लिए, इस सेक्शन में बताई गई अतिरिक्त जानकारी शामिल करें.

अगर IDE हैंग हो जाता है

अगर IDE बहुत धीमा काम कर रहा है या पूरी तरह से फ़्रीज़ हो गया है, तो इस पेज पर बताए गए तरीके से कुछ थ्रेड डंप जनरेट करें और उन्हें गड़बड़ी की रिपोर्ट में अटैच करें. थ्रेड डंप से पता चलता है कि IDE क्या कर रहा है, जिसकी वजह से उसकी परफ़ॉर्मेंस धीमी हो रही है.

अगर IDE काम कर रहा है, लेकिन फ़्रीज़ नहीं हुआ है, तो अपनी गड़बड़ी की रिपोर्ट में idea.log फ़ाइल अटैच करें. फ़ाइल अटैच करने के लिए, सहायता > लॉग और गड़बड़ी की जानकारी देने वाला डेटा इकट्ठा करें या सहायता > फ़ाइलों में लॉग दिखाएं (macOS पर सहायता > Finder में लॉग दिखाएं) को चुनें. इस फ़ाइल से पता चलता है कि IDE, लॉग में गड़बड़ियां दिखा रहा है या नहीं.

धीमे होने की समस्या का पता लगाने के लिए, सीपीयू प्रोफ़ाइलों का इस्तेमाल करना

अगर आपको Android Studio में काम करने में समस्या आ रही है, तो सीपीयू प्रोफ़ाइलों की मदद से कभी-कभी समस्या का पता लगाया जा सकता है.

Android Studio के परफ़ॉर्मेंस टेस्टिंग प्लग इन का इस्तेमाल करके सीपीयू प्रोफ़ाइल कैप्चर करने के लिए, यह तरीका अपनाएं:

  1. प्लग इन इंस्टॉल करें.

    • Android Studio में, प्लग इन मार्केटप्लेस में "परफ़ॉर्मेंस टेस्टिंग" खोजें.
    • इसके अलावा, प्लग इन की वेबसाइट से, Android Studio के साथ काम करने वाला वर्शन डाउनलोड किया जा सकता है.
  2. सीपीयू प्रोफ़ाइल बनाएं.

    1. अगर Android Studio में काम करने में समस्या आ रही है, तो सीपीयू के इस्तेमाल की प्रोफ़ाइलिंग शुरू करें को चुनें.
    2. कुछ ऐसी कार्रवाइयां दोहराएं जिनमें इंतज़ार की समस्या होती है (कोड पूरा करना, टाइप करना, और हाइलाइट होने का इंतज़ार करना वगैरह).
    3. सीपीयू के इस्तेमाल की प्रोफ़ाइलिंग बंद करें पर क्लिक करें.
  3. प्रोफ़ाइल फ़ाइल शेयर करें.

    एक बबल दिखेगा, जिसमें सीपीयू के स्नैपशॉट का फ़ाइल नाम दिखेगा. यह नाम snapshot-NNN फ़ॉर्मैट में होगा. उस स्नैपशॉट फ़ाइल को अपनी गड़बड़ी की रिपोर्ट में शेयर करें.

अगर IDE की मेमोरी खत्म हो जाती है

Android Studio में मेमोरी से जुड़ी समस्याओं को दोहराना और उन्हें बताना कभी-कभी मुश्किल होता है. इस समस्या को हल करने के लिए, Android Studio में मेमोरी के इस्तेमाल की रिपोर्ट शामिल होती है. इस रिपोर्ट को Android Studio की टीम को भेजा जा सकता है, ताकि मेमोरी से जुड़ी समस्याओं के सोर्स की पहचान की जा सके.

मेमोरी के इस्तेमाल की रिपोर्ट चलाना

मेमोरी के इस्तेमाल की रिपोर्ट चलाने के लिए, यह तरीका अपनाएं:

  1. मेन्यू बार में, सहायता > मेमोरी के इस्तेमाल का विश्लेषण करें पर क्लिक करें.

    Android Studio, ढेर को डंप कर देता है और आपको IDE को रीस्टार्ट करने के लिए कहता है. IDE को फिर से शुरू करने पर, हेप डंप का विश्लेषण तुरंत शुरू हो जाता है. ऐसा न करने पर, अगली बार Android Studio चलाने पर, ढेर के डंप का विश्लेषण शुरू हो जाएगा. दोनों ही मामलों में, जब 'मेमोरी के इस्तेमाल की रिपोर्ट' की समीक्षा के लिए तैयार हो जाती है, तो IDE आपको इसकी सूचना देता है. जैसा कि पहली इमेज में दिखाया गया है.

    मेमोरी के इस्तेमाल की रिपोर्ट की समीक्षा के लिए तैयार होने की सूचना
    पहली इमेज. मेमोरी 'रिपोर्ट की सूचना' का इस्तेमाल करें.
  2. रिपोर्ट की समीक्षा करें पर क्लिक करें.

    रिपोर्ट भेजने से पहले, इसमें शामिल जानकारी की समीक्षा की जा सकती है:

    मेमोरी के इस्तेमाल की रिपोर्ट.
    दूसरी इमेज. मेमोरी के इस्तेमाल की जानकारी देने वाली रिपोर्ट का विश्लेषण.
  3. समीक्षा करने के बाद, रिपोर्ट के कॉन्टेंट को किसी फ़ाइल में कॉपी करें. इसके बाद, बग की शिकायत करते समय उस फ़ाइल को अटैच करें.

    इस तरह से रिपोर्ट की जानकारी सबमिट करने पर, Android Studio की टीम, समस्या ट्रैकर का इस्तेमाल करके आपसे संपर्क कर सकती है. ऐसा, आपकी मेमोरी से जुड़ी समस्याओं की जांच करते समय किया जाता है.

अगर IDE क्रैश हो जाता है या अपवाद दिखाता है

अन्य तरह के क्रैश के लिए, idea.log फ़ाइल अटैच करें. इसके लिए, सहायता > लॉग और गड़बड़ी की जानकारी देने वाला डेटा इकट्ठा करें या सहायता > फ़ाइलों में लॉग दिखाएं चुनें. macOS पर, सहायता > Finder में लॉग दिखाएं को चुनें.

थ्रेड का डंप जनरेट करना

थ्रेड डंप, JVM में चल रही सभी थ्रेड का प्रिंटआउट होता है. हर थिरेड के लिए, इसमें सभी स्टैकफ़्रेम का प्रिंटआउट शामिल होता है. इससे यह देखना आसान हो जाता है कि IDE क्या कर रहा है. खास तौर पर, अगर कुछ सेकंड के अंतराल पर एक से ज़्यादा थ्रेड डंप जनरेट किए जाते हैं.

जब किसी ऐसे गड़बड़ी की शिकायत की जाती है जिसमें IDE, सीपीयू का ज़्यादा इस्तेमाल कर रहा हो या IDE फ़्रीज़ हो गया हो, तो थ्रेड डंप से पता चल सकता है कि कौनसा कोड ज़्यादा काम कर रहा है या कौनसी थ्रेड संसाधनों के लिए मुकाबला कर रही हैं और डेडलॉक की वजह बन रही हैं.

JDK में jstack नाम का एक टूल होता है. इसका इस्तेमाल, थ्रेड डंप जनरेट करने के लिए किया जा सकता है. सबसे पहले, Android Studio प्रोसेस का प्रोसेस आईडी (पीआईडी) ढूंढें. ऐसा करने के लिए, jps कमांड का इस्तेमाल करें:

Linux या macOS पर:

jps -mv | grep studio

Windows पर:

jps -mv | findstr studio

इससे एक लंबी लाइन प्रिंट होती है, जैसे:

$ jps -mv | grep studio
37605 -Dfile.encoding=UTF-8 -ea -Dsun.io.useCanonCaches=false -Djava.net.preferIPv4Stack=true -Djna.nosys=true ...

पहला नंबर (इस उदाहरण में, 37605) प्रोसेस आईडी है.

इसके बाद, थ्रेड का डंप जनरेट करें और उसे dump.txt फ़ाइल में सेव करें:

jstack -l pid >> dump.txt

अगर इससे काम नहीं बनता है, तो प्लैटफ़ॉर्म के हिसाब से, थ्रेड डंप जनरेट करने के कुछ और तरीके भी हैं. ज़्यादा जानकारी के लिए, IntelliJ सहायता देखें.

बिल्ड टूल और Gradle के गड़बड़ियों के बारे में जानकारी

बिल्ड टूल या Gradle के लिए किसी गड़बड़ी की शिकायत करने के लिए, कोई ऐसा असल या सैंपल प्रोजेक्ट अटैच करें जिसमें समस्या दिख रही हो. इससे यह पक्का करने में मदद मिलेगी कि ज़रूरी सारी जानकारी कैप्चर की गई है. शेयर करने से पहले, कोई भी संवेदनशील जानकारी हटा दें.

अगर आपको कोई प्रोजेक्ट शेयर करने में समस्या आ रही है, तो इस्तेमाल किए जा रहे टूल के वर्शन बताएं. (बग की शिकायत करने से पहले, सबसे नए स्थिर या झलक वाले वर्शन का इस्तेमाल करें). टूल के वर्शन ढूंढने के लिए, यह तरीका अपनाएं:

  • Android Gradle प्लग इन का वर्शन:

    1. फ़ाइल > प्रोजेक्ट का स्ट्रक्चर चुनें.
    2. प्रोजेक्ट पर क्लिक करें.
    3. Android Gradle प्लग इन का वर्शन ढूंढें.
  • Gradle वर्शन:

    1. फ़ाइल > प्रोजेक्ट का स्ट्रक्चर चुनें.
    2. प्रोजेक्ट पर क्लिक करें.
    3. Gradle वर्शन ढूंढें.
  • Android Studio का वर्शन:

    1. सहायता > इसके बारे में जानकारी को चुनें.
    2. Android Studio का वर्शन ढूंढें.

इसके अलावा, जहां लागू हो वहां यह जानकारी शामिल करें:

  • अगर किसी वर्शन के व्यवहार में अचानक बदलाव हुआ है, तो दोनों वर्शन के बारे में बताएं.
  • अगर बिल्ड किसी गड़बड़ी की वजह से पूरा नहीं हो पाता है, तो --stacktrace विकल्प (जैसे, ./gradlew <task> --stacktrace) के साथ कमांड लाइन से बिल्ड चलाएं और अपनी गड़बड़ी की रिपोर्ट में स्टैक ट्रेस दें.
  • अगर बिल्ड में उम्मीद से ज़्यादा समय लग रहा है, तो इनमें से कोई एक तरीका आज़माएं:
    • ./gradlew <task> --scan चलाएं और अपनी गड़बड़ी की रिपोर्ट में, जनरेट किया गया Gradle बिल्ड स्कैन शेयर करें.
    • ./gradlew <task> -Pandroid.enableProfileJson=true चलाएं और <root-project>/build/android-profile डायरेक्ट्री में जनरेट हुई Chrome-trace फ़ाइलें शेयर करें.

Android Emulator में मौजूद गड़बड़ियों के बारे में जानकारी

जानकारी इकट्ठा करने और गड़बड़ी की शिकायत करने के लिए, एमुलेटर के बेहतर कंट्रोल का इस्तेमाल करने के लिए यह तरीका अपनाएं:

  1. एमुलेटर पैनल में, ज़्यादा पर क्लिक करें.
  2. बेहतर कंट्रोल विंडो में, बग की शिकायत करें को चुनें.

    ऐसा करने पर, गड़बड़ी की रिपोर्ट की जानकारी वाली एक स्क्रीन खुलेगी. इसमें स्क्रीनशॉट, AVD कॉन्फ़िगरेशन की जानकारी, और गड़बड़ी की रिपोर्ट का लॉग शामिल है. समस्या को दोहराने का तरीका यहां डाला जा सकता है या अगले चरण में जनरेट की गई रिपोर्ट में, इसे डालने के लिए इंतज़ार किया जा सकता है.

  3. गड़बड़ी की रिपोर्ट इकट्ठा होने का इंतज़ार करें. इसके बाद, Google को भेजें पर क्लिक करें.

    इसके बाद, एक विंडो खुलेगी. इसमें आपको गड़बड़ी की रिपोर्ट को किसी फ़ोल्डर में सेव करना होगा. आपका ब्राउज़र, Google समस्या ट्रैकर में रिपोर्ट बनाने के लिए भी खुलता है. इसमें, एमुलेटर की ज़रूरी जानकारी पहले से भरी होती है.

  4. रिपोर्ट में, बग को फिर से दिखाने का तरीका जैसी बाकी जानकारी दें. साथ ही, बग की रिपोर्ट बनाते समय सेव की गई फ़ाइलें अटैच करें.

अगर ऐसा नहीं है, तो मैन्युअल तरीके से यह जानकारी डालें:

  • एम्युलेटर का वर्शन

    1. एमुलेटर में, बेहतर कंट्रोल खोलें.
    2. मदद पाएँ पर क्लिक करें।
    3. एमुलेटर वर्शन देखने के लिए, इसके बारे में जानकारी टैब पर क्लिक करें.
  • Android SDK टूल का वर्शन

    1. टूल > SDK मैनेजर चुनें.
    2. SDK टूल पर क्लिक करें.
    3. Android SDK टूल ढूंढें.
  • होस्ट का सीपीयू मॉडल

    • Linux पर: /proc/cpuinfo खोलें.
    • Windows पर: मेरा कंप्यूटर पर राइट क्लिक करें और प्रॉपर्टी चुनें.
    • macOS पर: Apple का आइकॉन चुनें और इस Mac के बारे में जानकारी पर क्लिक करें
  • डिवाइस का नाम

    1. AVD मैनेजर में, डिवाइस के लिए कार्रवाइयां कॉलम में मौजूद मेन्यू खोलने के लिए क्लिक करें.
    2. जानकारी देखें को चुनें (या $avdname.avd/config.ini फ़ाइल खोलें).
    3. hw.device.name की एंट्री ढूंढें. उदाहरण के लिए: hw.device.name=Nexus 5.