एक एंड्रॉइड एप्लिकेशन जो मैं वर्तमान में विकसित कर रहा हूं वह क्रैश हो रहा था (तय किया गया था), जिसके कारण इंडेक्सऑटऑफबाउंड एक्सेप्शन उठाया जाना चाहिए था। मैं एक वर्ग की doInBackground विधि में एक स्ट्रिंग तक पहुंच रहा था जो चरम तर्क पैरामीटर (यानी स्ट्रिंग ...) से AyncTask को बढ़ाता है। मैं गलती से एक तत्व परिवर्तनीय तर्क स्ट्रिंग (हल्के शर्मनाक ...) के सूचकांक 1 (0 नहीं) तक पहुंच रहा था। जब एप्लिकेशन पहले क्रैश हो गया तो मैंने अपने लॉककैट को देखा, (और कई बार यह पुष्टि करने के लिए कि मैं पागल नहीं था) और रनटाइम अपवाद के लिए कोई स्टैक ट्रेस नहीं था। मैं अक्सर अपने फोन को दुर्घटनाग्रस्त करता हूं और मेरे लिए हमेशा देखने और ठीक करने के लिए एक अच्छा छोटा स्टैक ट्रेस होता है, लेकिन मैं इससे परेशान था।एंड्रॉइड लॉगकैट रनटाइम अपवाद के लिए स्टैक ट्रेस क्यों नहीं दिखाता है?
W/dalvikvm(25643): threadid=11: thread exiting with uncaught exception (group=0x40c281f8)
D/dalvikvm(25643): GC_CONCURRENT freed 1249K, 25% free 12433K/16455K, paused 2ms+6ms
W/dalvikvm(25643): threadid=15: thread exiting with uncaught exception (group=0x40c281f8)
I/Process (25643): Sending signal. PID: 25643 SIG: 9
I/ActivityManager(5905): Process com.trade.nav.ges (pid 25643) has died.
W/ActivityManager(5905): Force removing r: app died, no saved state
I/WindowManager(5905): WIN DEATH: win
I/WindowManager(5905): WIN DEATH: win
I/SurfaceFlinger(1746): id=3848 Removed idx=2 Map Size=4
I/SurfaceFlinger(1746): id=3848 Removed idx=-2 Map Size=4
I/WindowManager(5905): WIN DEATH: win
I/power (5905): *** acquire_dvfs_lock : lockType : 1 freq : 1000000
D/PowerManagerService(5905): acquireDVFSLockLocked : type : DVFS_MIN_LIMIT frequency : 1000000 uid : 1000 pid : 5905 tag : ActivityManager
W/ActivityManager(5905): mDVFSLock.acquire()
और उसके बाद, एक और गतिविधि शुरू होता है: यहाँ मेरी logcat की उचित अनुभाग (जो एक runtimeexception के लिए कोई स्टैक ट्रेस शामिल हैं), सही है कि दुर्घटना पैदा कर रहा था कोड की लाइन से पहले एक डिबग बयान निम्नलिखित है। संदर्भ के लिए, कोड कि दुर्घटना का कारण बना है:
private class LoadImage extends AsyncTask<String, Integer, Bitmap> {
String url = "";
//...
public LoadImage(ImageView iv, Context c) {
//...
}
protected Bitmap doInBackground(String... urls) {
// urls has one element
url = urls[1];
//...
}
//...
}
क्या मुझे बहुत खुश हैं, के रूप में मैं इंटरनेट पर इस तरह कभी नहीं देखा कुछ भी होने के बारे में उत्सुक हूँ हो रहा है उसकी कोई जानकारी। धन्यवाद।
संपादित करें: मैं कोई फ़िल्टर सेट
क्या आपने कोशिश कैच ब्लॉक में अपवाद कोड डालने का प्रयास किया था? –
आप सुनिश्चित हैं कि आपके पास कोई फ़िल्टर चयनित नहीं है? – Varun
... समस्या यह नहीं है कि मुझे रनटाइम अपवाद को बढ़ाने से कोड को रोकने की आवश्यकता है, मैंने कोड के दूसरे संस्करण में पहले ही ऐसा किया है (नंबर 1 को 0 में बदल दिया है)। समस्या यह है कि कोड के पुराने संस्करण ने कभी भी मेरे लॉगकैट में दिखाने के लिए रनटाइम अपवाद स्टैक ट्रेस का कारण नहीं बनाया। मैं जानना चाहता हूं कि ऐसा क्यों होगा। –