Logcat त्रुटि के साथ क्रैश हो जाता है: अप्रत्याशित EOF


87

मैं कुछ लंबी गणनाएं कर रहा हूं और कुछ गलत हो गया है। मैंने ब्रेकप्वाइंट का उपयोग करने की कोशिश की, लेकिन अब तक कोई सफलता नहीं मिली। इसलिए मैंने Log.dनिगरानी के लिए लूप में डाल दिया ...

लेकिन बहुत जल्द, Logcat के साथ क्रैश:

02-08 16:35:42.820 2936-3402/com.nohkumado.geneticsolving.full D/BaseC: 
    norm:BC sq:49.0 dis:0.0 con:50.0/BC sq:56.0 dis:4.0 con:94.0=1.4069148936170213

    read: unexpected EOF!

    --------- beginning of crash

और मुझे Logcat को फिर से चलाने के लिए स्टूडियो को पुनः आरंभ करने की आवश्यकता है।

मैंने देखा कि क्या मुझे Logcat के लिए बफर आकार के लिए कुछ सेटिंग मिल सकती है, लेकिन अभी तक मुझे कुछ भी नहीं मिला है। क्या किया जा सकता है?


1
पूछने वाला दो असंबंधित बातों का सामना कर रहा है। संदेश "क्रैश की शुरुआत" का अर्थ है कि एंड्रॉइड ऐप क्रैश हो गया है, लॉगकैट नहीं। "पढ़ा: अप्रत्याशित EOF!" वास्तव में logcat प्रक्रिया से आता है और यह इंगित करता है कि logcat प्रक्रिया ने logd प्रक्रिया से अपना कनेक्शन खो दिया है।
satur9nine

खैर, एप्लिकेशन दुर्घटना नहीं था, यह केवल परिवर्तित नहीं था .... लेकिन मैं logcat की बफर सीमा के कारण इसे नहीं देख सका .....
Noh Kumado

जवाबों:


100

अपने डिवाइस / एमुलेटर पर सेटिंग्स-> डेवलपर विकल्पों के तहत लॉगजी बफर आकारों को बंद करने का प्रयास करें । यह हो सकता है क्योंकि लकड़हारा बफर केवल एक विशेष समय में लॉग के सीमित KB प्रदर्शित करने के लिए कॉन्फ़िगर किया गया है। पिछले बफ़र को साफ़ करने के बाद लॉग का अगला सेट केवल प्रदर्शित किया जाएगा।


2
वास्तव में, टैबलेट की तरफ लॉगकोट, निश्चित लंबाई का था!
नोह कुमाडो

10
मैंने इसे बंद कर दिया है, अब मुझे कोई लॉग नहीं दिखता है। (सैमसंग नोट 8)। मुझे नहीं लगता कि यह सभी के लिए एक समाधान है
behelit

1
मैंने इसे बंद कर दिया, लेकिन मुझे अभी भी प्रश्न ओपनर के रूप में त्रुटि मिली।
निसिम नईम

यह मेरे लिए काम किया (एमुलेटर के साथ)। मुद्दा अभी हाल ही में शुरू हुआ।
लस्सी किन्नुनेन

यह एक स्वीकृत उत्तर नहीं होना चाहिए, वास्तविक उपकरणों को बंद करने के बजाय इसे कम करने से रोकने के लिए बफर को बढ़ाना बेहतर है। हालाँकि यह डिवाइस पर निर्भर / Android OS संस्करण पर निर्भर हो सकता है।
सेर्गेई ड्रायगनेट्स

138

पूर्ण उत्तर

स्वीकृत जवाब मेरे काम नहीं आया। लकड़हारा बफर को बंद करने के बजाय, मैंने इसे अधिकतम आकार तक बढ़ा दिया।

  1. अपने एमुलेटर या डिवाइस ( एंड्रॉइड स्टूडियो नहीं ) में डेवलपर विकल्प सक्षम करें यदि यह पहले से सक्षम नहीं किया गया है: अपने एमुलेटर या डिवाइस में सेटिंग> सिस्टम> अबाउट (एमुलेटेड डिवाइस) पर जाएं और बिल्ड नंबर पर क्लिक करें। 7 ।
  2. पर जाएं सेटिंग> सिस्टम> डेवलपर विकल्प> लॉगर आकार बफ़र और एक उच्च मूल्य चुनें।

यहाँ छवि विवरण दर्ज करें

  1. मुझे एमुलेटर को भी पुनरारंभ करना पड़ा।

तो मूल समस्या स्पष्ट रूप से होती है क्योंकि डिवाइस लॉग बफर लंबे लॉगिंग के लिए भर जाता है। बफ़र का आकार बढ़ाने से आप एकल लॉगिंग सत्र में अधिक लॉग इन कर सकते हैं।


1
इसके उपयोग से मैं एक सामान्य कार्य दिवस में समस्या से बच सकता हूं। मेरे लिए एक अपवाद है: बहुत सारे ब्लूटूथ डिवाइस वाले वातावरण में सैमसंग फोन का उपयोग करना। सैमसंग ने सिस्टम स्तर में प्रत्येक ब्लूटूथ स्कैन को लॉग करने का निर्णय लिया और जाहिरा तौर पर 16M इसके लिए पर्याप्त नहीं है। यह तब भी एक दिन में 4 या 5 बार होगा जब मेरे पास 30 से अधिक ब्लूटूथ डिवाइस होंगे।
जू

लॉग बफ़र एक रिंग बफ़र है, इसका आकार बदलने से लॉगकट और लॉगड के बीच संबंध खो जाने पर कोई औसत दर्जे का प्रभाव नहीं होना चाहिए। यह सब परिवर्तन है कि कितना लॉगिंग इतिहास स्मृति में चारों ओर बैठता है। यह अत्यधिक संभावना नहीं है कि यह समस्या को ठीक करता है।
satur9nine

1
@ satur9nine, मैं यह नहीं कह सकता कि क्या यह अंतर्निहित स्तर पर समस्या को ठीक करता है, लेकिन इसने मेरी समस्या को ठीक कर दिया है कि यह दुर्घटना को रोकता है और अधिक लॉग संदेश दिखाने की अनुमति देता है।
सुरगाछ

एक Moto G5 प्लस से दूसरे में TWRP बैकअप ट्रांसफर करने के बाद, मेरे logcat बफर में कुछ महीने पहले से लेकर आज तक के कुछ इवेंट शामिल थे read: unexpected EOF!। 16M में वृद्धि ने समस्या को ठीक कर दिया और महीनों पुरानी घटनाओं को गायब कर दिया।
nyanpasu64

18

डेवलपर विकल्पों में आप लकड़हारा बफर का आकार अधिकतम 16M तक सेट कर सकते हैं।
(सेटिंग> सिस्टम> डेवलपर विकल्प> लकड़हारा बफर आकार)

यदि आपको और अधिक की आवश्यकता है तो आप इसे adb का उपयोग करके सेट कर सकते हैं। उदाहरण के लिए आप इसे 100M पर सेट कर सकते हैं:

adb logcat -G 100M

7

आपके द्वारा पोस्ट किया गया यह लॉग एप दुर्घटनाग्रस्त होने का संकेत दे रहा है (हालांकि स्टैकट्रेस के साथ सामान्य तरीके से नहीं, लेकिन यह दुर्घटनाग्रस्त है), लॉगकैट नहीं। क्या आपके पास लॉग इन में एप्लिकेशन "चयनित एप्लिकेशन दिखाएं" के लिए चयनित और फ़िल्टर सेट है? यदि हां, तो फ़िल्टर को "नो फिल्टर" पर सेट करें और आपको अपने ऐप के सभी लॉग दिखाई देंगे।

इसके अलावा अगर आपको एंड्रॉइड स्टूडियो को पुनरारंभ करने के बजाय किसी भी कारण से लॉगकैट को पुनरारंभ करने की आवश्यकता है, तो आप निम्नलिखित कमांड चला सकते हैं जो कि एडीबी को फिर से शुरू करेगा और अंततः आपके लॉगकैट को भी फिर से शुरू करेगा:

adb kill-server
adb start-server

यह अजीब है, क्योंकि ऐप काम करना जारी रखता है? मैं खुद ही संगणना के बारे में चिंतित हूं (इसलिए मेरी इच्छा है कि मैं इसे डिबग करूं), लेकिन बाकी काम करता है, बटन आदि पर क्लिक करने से अपेक्षित व्यवहार जारी रहता है? adb ट्रिक ने logcat को पुनर्स्थापित किया, दुर्भाग्य से वास्तविक समय बिंदु पर
स्किप है

मैंने सोचा कि यू का मतलब लंबी गणना से है और फिर कुछ गलत हो जाता है, जिसका अर्थ है कि यह ऐप शायद सुस्त हो गया है या प्रतिक्रिया नहीं दे रहा है और फिर दुर्घटनाग्रस्त हो रहा है। क्या ऐप कई गतिविधियों से बना है? और जब त्रुटि होती है तो क्या यह पिछली गतिविधि पर वापस लौटने जैसा है? कोई भी फ़िल्टर सभी लॉग को सही नहीं दिखाता है?
अहसबीनी

कोई भी ऐप अपने परिणामों को सुचारू रूप से नहीं चलाता है कि कुछ बिंदु पर उम्मीद से विचलित हो जाता है, हाँ कई गतिविधियां और कार्यकर्ता थ्रेड्स async कार्यों के साथ किए जाते हैं, और उस क्रैश संदेश के बाद नहीं, logcat सब कुछ के लिए
धुंधला

3

यदि आप असली फोन से चल रहे हैं - मेरे लिए काम किए गए यूएसबी से फोन को डिस्कनेक्ट और कनेक्ट करें (बफर खाली हो जाता है- जैसे @Suragch ने सुझाव दिया)।


2

बफ़र का आकार बदलना मेरे लिए काम नहीं आया। मेरे USB कनेक्शन को USB 3.0 पोर्ट में क्या बदल रहा था।


1
आश्चर्यजनक! इस संकेत के लिए धन्यवाद। मेरी भी यही समस्या थी।
एथन लरॉय

उसी नस में अपने डिवाइस और आपके कंप्यूटर के बीच बैठे किसी भी USB हब को हटा दें और / या अपने कंप्यूटर पर अलग-अलग USB पोर्ट आज़माएं।
satur9nine


1

अपने डिवाइस को पुनरारंभ करें! मुझे पता नहीं है कि मेरे मोबाइल फोन को पुनरारंभ करने के बाद यह मेरे लिए क्यों काम करता है।



0

दुर्भाग्य से यह अभी भी एक मुद्दा है, मैं एक प्लगइन स्थापित करने के बगल में एक संतोषजनक समाधान नहीं मिल सका ( फ़ाइल -> सेटिंग -> प्लगइन्स -> बाज़ार ) " लॉग व्यूअर " कहा जाता है । एंड्रॉइड स्टूडियो के अंतर्निहित लॉगकैट दर्शक से बेहतर काम करता है।


0

सिफारिशें मेरे काम नहीं आईं। मैंने आखिरकार इस वरीयता सेटिंग को बदल दिया:

मेनू "रन", मेनू एंट्री "कॉन्फ़िगरेशन संपादित करें", फिर बाईं ओर "एंड्रॉइड ऐप / ऐप" और दाईं ओर टैब "माइकल एंजेलो", और अंत में "लॉगकैट: लॉन्च से पहले लॉग को साफ़ करें" को सक्रिय करें।

बेशक इसके साइड इफेक्ट्स हैं, लेकिन कम से कम मैं लॉग आउटपुट को फिर से देख सकता हूं।


-1

बस फाइल पर जाएं -> अमान्य कैश / रिस्टार्ट एंड्रॉइड स्टूडियो को काम करने देगा


मुझे नहीं लगता कि इससे समस्या का सामना करने में मदद मिलेगी, लेकिन एएस रीस्टार्ट लॉगकैट को पुनः आरंभ करेगा, स्पष्ट रूप से समस्या को ठीक करना।
PNDA

@PNDA android को अपने कैश को मान्य क्यों नहीं करने देना चाहिए और इसे फिर से शुरू करना चाहिए? मैं नहीं देखता कि नुकसान कहां है
बेनामी-ई
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.