एंड्रॉइड (जावा) में मैं एक पूर्ण स्टैक ट्रेस कैसे प्रिंट कर सकता हूं? यदि मेरा अनुप्रयोग nullPointerException या किसी चीज़ से क्रैश होता है, तो यह एक (लगभग) पूर्ण स्टैक ट्रेस को प्रिंट करता है:
java.io.IOException: Attempted read from closed stream.
com.android.music.sync.common.SoftSyncException: java.io.IOException: Attempted read from closed stream.
at com.android.music.sync.google.MusicSyncAdapter.getChangesFromServerAsDom(MusicSyncAdapter.java:545)
at com.android.music.sync.google.MusicSyncAdapter.fetchDataFromServer(MusicSyncAdapter.java:488)
at com.android.music.sync.common.AbstractSyncAdapter.download(AbstractSyncAdapter.java:417)
at com.android.music.sync.common.AbstractSyncAdapter.innerPerformSync(AbstractSyncAdapter.java:313)
at com.android.music.sync.common.AbstractSyncAdapter.onPerformLoggedSync(AbstractSyncAdapter.java:243)
at com.google.android.common.LoggingThreadedSyncAdapter.onPerformSync(LoggingThreadedSyncAdapter.java:33)
at android.content.AbstractThreadedSyncAdapter$SyncThread.run(AbstractThreadedSyncAdapter.java:164)
Caused by: java.io.IOException: Attempted read from closed stream.
at org.apache.http.impl.io.ChunkedInputStream.read(ChunkedInputStream.java:148)
at org.apache.http.conn.EofSensorInputStream.read(EofSensorInputStream.java:159)
at java.util.zip.GZIPInputStream.readFully(GZIPInputStream.java:212)
at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:81)
at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:64)
at android.net.http.AndroidHttpClient.getUngzippedContent(AndroidHttpClient.java:218)
at com.android.music.sync.api.MusicApiClientImpl.createAndExecuteMethod(MusicApiClientImpl.java:312)
at com.android.music.sync.api.MusicApiClientImpl.getItems(MusicApiClientImpl.java:588)
at com.android.music.sync.api.MusicApiClientImpl.getTracks(MusicApiClientImpl.java:638)
at com.android.music.sync.google.MusicSyncAdapter.getChangesFromServerAsDom(MusicSyncAdapter.java:512)
... 6 more
हालाँकि कभी-कभी, डीबगिंग उद्देश्यों के लिए, मैं एक पूर्ण स्टैक ट्रेस लॉग करना चाहता हूँ जहाँ से मैं कोड में हूँ। मुझे लगा कि मैं बस यही कर सकता हूं:
StackTraceElement trace = new Exception().getStackTrace();
Log.d("myapp", trace.toString());
लेकिन यह सिर्फ संकेतक को ऑब्जेक्ट को प्रिंट करता है ... क्या मुझे उन्हें प्रिंट करने के लिए सभी स्टैक ट्रेस तत्वों के माध्यम से पुनरावृति करना है? या वहाँ एक सरल विधि यह सब बाहर मुद्रित करने के लिए है?