2012-04-05 10 views
7

मेरे आवेदन में एक गतिविधि एक सेवा शुरू करती है जो एक अलग प्रक्रिया के रूप में चलती है, मैं गतिविधि के साथ-साथ सेवा को डीबग करना चाहता हूं लेकिन सेवा में ब्रेकपॉइंट्स पर डीबगर बंद नहीं होता है?एंड्रॉइड में दो प्रक्रियाओं को डीबग कैसे करें?

सहायता के लिए धन्यवाद।

+0

यह चाहिए :-)। सेवा ब्रेकपॉइंट्स हिट नहीं होने का कोई कारण नहीं है। क्या आप सेवा लॉन्च करने के लिए उपयोग की जा रही गतिविधि में ब्रेकपॉइंट पर सफलतापूर्वक रुकने में सक्षम हैं? गतिविधि में – tomtheguvnor

+0

@tomtheguvnor, हां। –

+3

अस्थायी रूप से इसे एक अलग प्रक्रिया नहीं बनाते हैं। अभी तक बेहतर, स्थायी रूप से इसे एक अलग प्रक्रिया न बनाएं, क्योंकि यह आम तौर पर अनावश्यक है और रैम और सीपीयू का अपमानजनक है। – CommonsWare

उत्तर

5

अस्थायी रूप से इसे एक अलग प्रक्रिया नहीं बनाते हैं।

@CommonsWare

4

आप अलग प्रक्रिया पर डिबगिंग को सक्षम करने की आवश्यकता है।

डीडीएमएस परिप्रेक्ष्य खोलें (जैसा कि डीबग या जावा के सामने है)। डीडीएमएस-> डिवाइस में, अपनी सेवा की प्रक्रिया का चयन करें और फिर डीबग बटन (थोड़ा-हरा-बग बटन) पर क्लिक करें। आपकी प्रक्रिया के पास एक डीबग आइकन दिखाई देगा, फिर आप अपनी सेवा में ब्रेकपॉइंट्स का उपयोग करने में सक्षम होना चाहिए।

ध्यान दें कि डिबगिंग सक्षम करने से पहले रिमोट प्रक्रिया शुरू होने तक आपको प्रतीक्षा करने की आवश्यकता है। इसलिए आप यह सुनिश्चित करना चाहते हैं कि पृथक प्रक्रिया बूट पर शुरू हो, या दूरस्थ सेवा शुरू करने वाली रेखा के तुरंत बाद आपकी मुख्य प्रक्रिया में ब्रेकपॉइंट सेट करें।

enter image description here

डिबगिंग सक्रिय करने के बाद:

सक्षम करने डिबगिंग से पहले

enter image description here

(निश्चित रूप से अस्थायी रूप से भी सेवा गैर दूरदराज के काम करता है बनाने, लेकिन मैं एक उदाहरण लिया है जहां वह व्यावहारिक नहीं था)

+0

+1, उत्तर की सराहना करें। मैं अब दो प्रक्रियाओं का उपयोग नहीं कर रहा हूं इसलिए मैं इसे स्वीकार करने से पहले समुदाय को उत्तर देने दूंगा। –

+0

वही दिशानिर्देश, लेकिन इंटेलिजे के लिए http://stackoverflow.com/a/10703431/9636 –

5

बस अन्य उत्तरों पर विस्तृत करने के लिए यहां, आप इसे आसान बनाने के लिए अस्थायी रूप से android.os.Debug.waitForDebugger(); को अपनी माध्यमिक प्रक्रिया के कोड में डाल सकते हैं।

फिर, बस डीडीएमएस या इंटेलिजे (या जो भी आप उपयोग कर रहे हैं) के माध्यम से प्रक्रिया में अपना डीबगर संलग्न करें।

+0

आधिकारिक-आईश एक Google कर्मचारी से यह सलाह देने के लिए सलाह दे रहा है: https://groups.google.com/d/msg/ android-डेवलपर्स/DftP5gYcwYI/j_mccTSCHNQJ –

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