2011-09-16 13 views
7

जब मेरा एंड्रॉइड एप्लिकेशन पहले से चल रहा है और मैं कोड बदलता हूं तो मुझे "हॉट कोड रीप्लेस असफल" संवाद मिलता है।एंड्रॉइड: मुझे ग्रहण में "हॉट कोड प्रतिस्थापित विफल" संवाद का जवाब कैसे देना चाहिए?

  1. मैं सोच रहा हूँ क्या सही जवाब है (समाप्त या डिस्कनेक्ट) अगर मैं जब मैं यह मुठभेड़ ग्रहण डिवाइस पर अपना कोड अपडेट करना चाहते हैं।

  2. समाप्त करने और डिस्कनेक्ट करने के बीच क्या अंतर है?

  3. इसके अलावा, मैं सोच रहा हूं कि अगर "हॉट कोड प्रतिस्थापन समर्थित नहीं है तो त्रुटि दिखाएं" पर क्लिक करें, भविष्य में ग्रहण क्या करेगा जब यह परिदृश्य होता है?

"Hot Code Replace Failed" dialog

+0

क्या आप उस समय डीबग कर रहे थे? मुझे इस संदेश का भी सामना करना पड़ा है, लेकिन केवल तभी जब मैं कुछ गड़बड़ कर रहा हूं और गलती से कोड बदल चुका हूं और डीबगर को नहीं रोका। यह मेरे लिए कोई समस्या नहीं थी क्योंकि मैंने अभी फिर से बनाया और एमुलेटर पर रखा था। मुझे लगता है कि हॉट कोड प्रतिस्थापन उपलब्ध नहीं है। क्या आपको वास्तव में उस सुविधा की आवश्यकता है? – Kerry

उत्तर

13

वीएम उपयोग (इस मामले में दलविक) के आधार पर, कुछ कोड परिवर्तन किए जा सकते हैं जबकि डीबगिंग 'हॉट तैनाती' या 'हॉट प्रतिस्थापन' होगी। इसका मतलब है कि कोड परिवर्तन तुरंत एमुलेटर पर प्रभावी होंगे और आप अपने ऐप को फिर से तैनात करने की आवश्यकता के बिना उनका परीक्षण कर सकते हैं। एंटरप्राइज़ अनुप्रयोगों के साथ काम करते समय गर्म पुन: तैनाती का अधिक सामान्य रूप से उपयोग किया जाता है जो विकास और तैनाती के लिए 10 मिनट लग सकते हैं और इसलिए विकास के दौरान बहुत समय बर्बाद कर सकते हैं।

हॉटस्पॉट वीएम (आमतौर पर पीसी पर उपयोग किया जाने वाला वीएम) केवल सरल कोड प्रतिस्थापन की अनुमति देता है और यदि आप फ़ील्ड सदस्य या विधि को जोड़ने/नाम बदलने का प्रयास करते हैं तो विफल हो जाता है। मुझे यकीन नहीं है कि दलविक वीएम किस प्रकार का समर्थन प्रदान करता है लेकिन यदि आप कोई बदलाव करते हैं तो यह समर्थन नहीं करता है कि आपको वह संवाद बॉक्स मिलेगा।

अब, बटन के लिए के रूप में:

  • जारी रखें: स्वीकार करते हैं कि परिवर्तन किए हैं नहीं एमुलेटर में तुरंत प्रभावी और डिबगिंग
  • बर्खास्त जारी रहेगा: एप्लिकेशन
  • डिस्कनेक्ट मार: आप बॉक्स को चेक करते एप्लिकेशन को समाप्त नहीं करते हैं लेकिन डिबगिंग सत्र के अंत (यानी डिबगर डिस्कनेक्ट)

, यह हमेशा जारी रहेगा।

+3

समाप्त ** ** ** * एमुलेटर * को मार डालेगा, केवल * ऐप * डीबग किया जा रहा है। –

+1

@ फिलिप धन्यवाद, यह थोड़ी देर के बाद से मैंने एंड्रॉइड विकास किया है। मैंने इसे सही कर दिया है। –

0

मैं आमतौर पर बर्खास्त और फिर बदली हुई कोड के साथ अपने आवेदन को फिर से प्रकाशित।

+0

धन्यवाद जैक-मैं भी पूछ रहा था, मैं सोच रहा हूं कि अगर मैं हॉट कोड प्रतिस्थापन समर्थित नहीं हूं तो त्रुटि दिखाएं ", इस परिदृश्य में भविष्य में ग्रहण क्या करेगा? –

+0

यह "हॉट कोड प्रतिस्थापन समर्थित नहीं होने पर त्रुटि दिखाई नहीं देगा" स्पष्ट रूप से;) –

+1

यह केवल त्रुटि नहीं दिखाएगा, और आपके परिवर्तन तब तक धक्का नहीं दिए जाएंगे जब तक आप उन्हें धक्का नहीं देते। तो यदि आपका प्रोग्राम एवीडी में चल रहा है, और आप कोड बदलते हैं, तो आपको नए संस्करण को धक्का देने के लिए इसे फिर से "चलाने" की आवश्यकता है। – Jack

5

मैं सोच रहा हूं कि सही प्रतिक्रिया क्या है (समाप्त या डिस्कनेक्ट करें) यदि मैं ग्रहण करता हूं तो डिवाइस पर अपना कोड अपडेट करना चाहता हूं।

जब आप Dalvik वी एम के रूप में इस संवाद का सामना गर्म स्वैप suppot नहीं है ग्रहण एमुलेटर पर अपने चल रहे कोड को अद्यतन करने के लिए कोई सीधा रास्ता है, यानी कोड चलाने का अद्यतन नहीं है। आपको ऐप को अपने एमुलेटर में मैन्युअल रूप से पुन: नियोजित करना होगा।

समाप्त करने और डिस्कनेक्ट करने के बीच क्या अंतर है?

  • बर्खास्त एप्लिकेशन को समाप्त कर देगा एमुलेटर/डिवाइस पर डिबग जा रहा है।

  • डिस्कनेक्ट बस डीबगर डिस्कनेक्ट करेगा, और एमुलेटर/डिवाइस पर चल रहे ऐप को छोड़ देगा।

इसके अलावा, मैं अगर मैं, "त्रुटि न दिखाएं जब गर्म कोड के स्थान पर समर्थित नहीं है" क्लिक भविष्य में क्या जब इस परिदृश्य होता है क्या ग्रहण होगा सोच रहा हूँ?

यह "त्रुटि दिखाई देगा नहीं की जगह जब गर्म कोड समर्थित नहीं है" जाहिर है;) - यानी यह आप और किसी भी परिवर्तन आप कर गर्म बदली चल रहे एप्लिकेशन में नहीं होगा चेतावनी नहीं है (क्योंकि डाल्विक वीएम उदाहरण के लिए ओरेकल के जेवीएम जैसे हॉट-स्वैपिंग का समर्थन नहीं करता है)।

संबंधित मुद्दे