निम्नलिखित का प्रयास करें:कैसे आप Android inEclipse
एक HelloWorld आवेदन बनाएँ।
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Log.d("HelloWorldActivity.onCreate()", "setContentView() completed"); }
प्लेस लॉग विवरण पर एक ब्रेकपाइंट:
एक लॉग बयान onCreate के अंत में जोड़ें।
एमुलेटर में ऐप चलाएं और ध्यान दें कि यह कार्य करता है और ग्रहण की लॉगकैट विंडो में लॉग इन प्रविष्टि देखने के लिए कदम उठाता है।
गतिविधि के बजाए ListActivity से विस्तार करने के लिए HelloWorldActivity बदलें।
public class HelloWorldActivity extends ListActivity {
- एमुलेटर में ऐप को दोबारा चलाएं और ध्यान दें कि यह लॉग स्टेटमेंट तक पहुंचने में विफल रहता है।
मेरा प्रश्न यह नहीं है कि यह क्यों विफल रहता है। मेरा सवाल यह है कि, आप इस विफलता को डीबग करने के बारे में कैसे जाएंगे? ग्रहण डीबग फलक में जो कुछ मैं देखता हूं वह एक रनटाइम अपवाद है। मुझे लगता है कि लॉगकैट में संदेशों का एक गुच्छा है, लेकिन यह बहुत बड़ा है और मैंने इसे खोज लिया है लेकिन यह इंगित करने के लिए कुछ भी नहीं मिला है कि क्या गलत है या मेरे कोड में अपवाद हुआ था। मुझे पता है कि कोड की कौन सी पंक्ति अपवाद शुरू हुई है, मुझे RuntimeException या स्टैक ट्रेस के अंदर संदेश प्रदर्शित करने का कोई तरीका नहीं मिल रहा है।
मुझे लगता है कि त्रुटियों को खोजने के लिए टूल का उपयोग करने के बेहतर तरीके होने चाहिए, लेकिन मैं नया हूं और कोशिश/पकड़ में सब कुछ लपेटने के अलावा डीबग करने का एक बेहतर तरीका नहीं समझ सकता। मुझे अपवाद को फेंकने से उत्पन्न लॉगकैट में एक संदेश प्राप्त करने की उम्मीद होगी। मैं डीबग विंडो से आपको अपवाद की सामग्री का निरीक्षण करने की अनुमति देता। मैं यह नहीं कह रहा हूं कि ऐसी तकनीकें मौजूद नहीं हैं, मैं कह रहा हूं कि मुझे शुरुआत करने के लिए परेशानी हो रही है कि कैसे शुरुआत करें और पूछें कि कौन सी तकनीकें मौजूद हैं और मैं उनका उपयोग कैसे करूं?
तो, सीधे शब्दों में:
- कैसे करता है, तो आप पहले से ही पता नहीं था क्या यह पैदा कर रहा था तो आपको यह त्रुटि मिलेगा?
- मूल कारण जानने के लिए आप किन तकनीकों का उपयोग करेंगे?
- आप अपवाद के विवरण का निरीक्षण करने के बारे में कैसे जाएंगे?
- आम तौर पर, आपको एक्लिप्स का उपयोग करके अपने एंड्रॉइड कोड में समस्याएं कैसे मिलती हैं?
एकाधिक सुझाव और चर्चा का स्वागत है। :)
मैं अपनी लॉगकैट सामग्री शामिल करता, लेकिन यह इतना बड़ा है कि उचित नहीं है। आपको इसे आसानी से पुन: पेश करने में सक्षम होना चाहिए, इसलिए मैंने इसे छोड़ दिया। यह मेरी मदद करने के लिए लॉगकैट में कुछ भी संभव है, लेकिन क्योंकि यह एक छोटा प्रोग्राम चलाने के साथ इतना बड़ा है, मुझे एक संकेत की आवश्यकता होगी कि एपीआई कॉल से हटाए गए अपवाद को मारने के दौरान मुझे क्या खोजना है और इसकी व्याख्या कैसे करें। मैं अन्य पदों को देखता हूं जो कुछ बताते हैं कि लॉगकैट में कुछ होना चाहिए, जो कि सच हो सकता है, मुझे कुछ भी नहीं मिल रहा है। अगर आपको लगता है कि लॉगकैट में कुछ होना चाहिए, तो कृपया परीक्षण स्वयं चलाएं और लाइनों को अपनी प्रतिक्रिया में कॉपी करें जो मुझे मिलना चाहिए।
धन्यवाद।
इनवेसिव तकनीक: 1. एक टोस्ट कोड स्थानों में जहां आप आपने देखना चाहते हैं
========
सारांश तकनीक सूची अब तक इस प्रकार है मार डाला। 2. प्लेस के चारों ओर प्रयास करें/पकड़ें जहां आपको लगता है कि एक अपवाद को फेंकने की संभावना है। 3. कोड को टिप्पणी करें और पुनः संकलित करें और पुनः प्रयास करें।
गैर-आक्रामक तकनीकें: 1. डीबगर का उपयोग करें। ब्रेकपॉइंट्स, वेरिएबल निरीक्षण ... 2. बंदर तनाव परीक्षक। 3. एंड्रॉइड स्रोत लाइब्रेरी डाउनलोड करें। 4. यह देखने के लिए लॉगकैट फ़िल्टर का उपयोग करें कि "कारण द्वारा" सूचीबद्ध है या नहीं।
उपलब्ध होने पर अस्पष्ट: 1. एंड्रॉइड लाइब्रेरी का डीबग संस्करण जिसमें अतिरिक्त लॉगिंग, दावे या अन्य अतिरिक्त सहायता है। 2. डीबग फलक या अन्य तकनीकों के माध्यम से ग्रहण में अपवाद का निरीक्षण करने की क्षमता। 3. अधिक वैश्विक प्रयास/पकड़ अपवाद हैंडलर को परिभाषित करने का एक तरीका। 4. एंड्रॉइड लाइब्रेरी स्रोत कोड के माध्यम से डीबग करने की क्षमता।
उपलब्ध नहीं है: 1. अपवाद की सामग्री को देखने के लिए एक गैर-आक्रामक तरीका या जहां अपवाद हुआ।
अपवाद विवरण निरीक्षण के लिए मैं अक्सर जाँच करने के लिए डिबग मोड (विंडो> दिखाएं देखें> भाव) में भाव विंडो का उपयोग मान। अपवाद के रूप में अपवाद की जांच करते समय यह आसान है .getMesage() हमेशा एक संदेश (यानी शून्य) वापस नहीं करता है, जबकि ब्रेक पॉइंट में डीबग मोड में दाएं बिंदु पर राइट क्लिक करें और "घड़ी" चुनें। इसे देखने के लिए आपको अपवाद पर कदम उठाना होगा। – Emile
ग्रहण में समस्या विंडो आपको पूर्व-संकलन समय त्रुटियों, और सख्त चेतावनियां भी दिखाएगी। (विंडो> दृश्य दिखाएं> अन्य ... समस्याएं) – Emile
लॉगकैट पहली बार अग्रणी है। फ़िल्टर संदेश पर काम करता है, न कि आपके लॉग टैग।कस्टम फ़िल्टर बनाने के लिए आपको लॉगकट मेनू का उपयोग करना चाहिए और "फ़िल्टर बनाएं" विकल्प का चयन करना चाहिए। यहां आप टैग और पिड द्वारा फ़िल्टर कर सकते हैं जो आपको अधिक बारीक नियंत्रण प्रदान करते हैं। यह एक टैब्ड विंडो में भी दिखाई देता है। सिस्टम घटनाओं को छिपाने के लिए बहुत उपयोगी है। ये संदेश वास्तव में मदद करते हैं कि आखिरी बार क्या काम करता है, लेकिन आपको त्रुटि दिखाई नहीं दे सकती है। तो सभी सिस्टम घटनाओं को दिखाने के लिए वापस झटका। (या पिड द्वारा लॉग) – Emile