सवाल डीबगर पोर्ट खोलने में असमर्थ: java.net.SocketException "सॉकेट बंद"


एंड्रॉइड स्टूडियो (v.0.4.4) पर एंड्रॉइड ऐप डीबग करने का प्रयास करते समय मुझे यह त्रुटि मिलती है:

Error running <appname> [assembleDebug]: 
Unable to open debugger port : java.net.SocketException "Socket closed"

ऐप संकलित करता है, और एडीबी का उपयोग कर फोन पर धकेल दिया जा सकता है। एडीबी के साथ कोई समस्या नहीं है; मैं पूरी तरह से logcat आदि स्थापित / निगरानी कर सकते हैं। मैं एक और प्रोजेक्ट लोड कर सकता हूं और इसे ठीक से डिबग कर सकता हूं। मैं इस पर वापस स्विच करता हूं और यह अभी भी टूटा हुआ है। तो यह पीसी (वास्तव में एक लिनक्स वीएम विंडोज़ के तहत चल रहा है), एंड्रॉइड स्टूडियो इंस्टॉल इत्यादि के साथ किसी समस्या को रद्द करने के लिए प्रतीत होता है। मैंने इस वीएम और होस्ट पीसी को रीबूट कर दिया है।

पिछले साल पिछले साल मुझे यह समस्या थी और मैंने ग्रहण को अनइंस्टॉल करके "इसे ठीक किया" (मुझे संदेह था कि यह वही सॉकेट प्राप्त करने का प्रयास कर रहा था)।

मैंने कुछ समय गुगलिंग किया है और सुझावों का प्रयास किया है लेकिन वे कोई फर्क नहीं पड़ता।

समस्या तब हुई जब मैंने एक हस्ताक्षरित, प्रक्षेपित रिलीज निर्माण किया। तब तक मैं केवल डीबग बिल्ड चला रहा था। हालांकि, मेरा मानना ​​है कि मैंने यह रिलीज बिल्ड बनाने के लिए किया था, build.gradle को संपादित करना और एंड्रॉइड स्टूडियो को स्वचालित रूप से एपीक्स पर हस्ताक्षर करने के लिए कॉन्फ़िगर करना था। मैंने तब से परिवर्तनों को वापस करने के लिए परिवर्तनों को वापस कर दिया है। समस्या है लेकिन समस्या बनी हुई है।

मुझे किसी भी एंड्रॉइड स्टूडियो लॉग फाइलों में कोई प्रासंगिक त्रुटियां नहीं दिखाई देती हैं; ऐसा लगता है कि इस अपवाद को कैप्चर किया जा रहा है, स्क्रीन पर रिपोर्ट की गई है लेकिन कहीं भी लॉग नहीं है।

उम्मीद है कि कोई इसे पढ़ने के लिए यहां कुछ चीजों का सुझाव दे सकता है जिसे मैंने अनदेखा कर दिया है।


47
2018-02-13 21:48


मूल




जवाब:


एंड्रॉइड स्टूडियो डेस्कटॉप पर, "रन / डीबग कॉन्फ़िगरेशन चुनें" बटन (एक एंड्रॉइड आइकन वाला एक) पर क्लिक करें, आपको सही विकल्प चुनने में सक्षम होना चाहिए।


44
2018-02-17 11:37



वर्कस्पेस.एक्सएमएल (काफी बड़ी फाइल) diffing के बाद, मैंने यह काम किया जब तक कि मैंने कल रात यह पता लगाया और यह काम करने तक परिवर्तन कर रहा था! हर बार जब मैं रिलीज बिल्ड करता हूं (ग्रैडल पर क्लिक करता हूं, तो इकट्ठा करने पर डबल क्लिक करें) कृपया यह मेरे रन / डीबग कॉन्फ़िगरेशन को इकट्ठा करने के लिए बदलें। विकल्प विकल्प। यह क्या समझ में आता है? आप कैसे इकट्ठा करते हैं रिलेक्शन कार्य? क्या यह एंड्रॉइड स्टूडियो में एक बग है?
यह सही जवाब नहीं है। देख stackoverflow.com/a/21188221/1459573 - Mihaela Romanca
यह मेरी मदद नहीं करता है। जो कुछ भी मैं चुनता हूं, मुझे वही त्रुटि मिलती है। - parvus
मुझे यह बटन कहां मिल सकता है? सैरी मैं एंड्रॉइड स्टूडियो के लिए बहुत नया हूं :( - Maciek Czarnik


मेरे पास कई हफ्तों के लिए यह "सॉकेट बंद" त्रुटि है और यह मुझे थोड़ा पागल कर रहा था। आज मैंने पाया कि हालांकि डीबग आइकन के माध्यम से लॉन्च करना मुझे अभी भी "सॉकेट बंद" देता है अगर मैं डीबगर को बाद में काम करता हूं (स्क्रीनशॉट में)। उम्मीद है कि यह किसी और समय बचाता है।

Screenshot highlighting the attach debugger icon


31
2017-07-01 13:58



इसके अलावा एक समाधान, लेकिन बहुत प्रतिस्पर्धा। ड्रॉप-डाउन मेनू के साथ एंड्रॉइड ऐप का चयन करना (आपके स्क्रीनशॉट में [InstallDebug] लेबल वाला एक) इसे आसानी से कर देगा। - Sven
यह मेरे लिए एक अड़चन समस्या है। सॉकेट कुछ समय बंद है, और दूसरी बार यह किसी समस्या के बिना काम करता है। बाद में डीबग को जोड़ना एक कामकाज है, लेकिन दुनिया में क्यों डीबग बंदरगाह पहली जगह अवरुद्ध है? - chubbsondubs
एकमात्र समाधान जो मेरे लिए काम करता है !!! बहुत बहुत धन्यवाद!!!! - stefan.m


मैं "ऐप" कॉन्फ़िगरेशन चुनकर इस समस्या को ठीक करने में सक्षम था। उपर्युक्त स्क्रीन शॉट में रन बटन के बाईं ओर खींचने से आप कॉन्फ़िगरेशन का चयन कर सकते हैं। ब्रैकेट के बिना किसी को चुनें।


25
2017-10-01 15:51



मुझे लगता है कि यह स्वीकार्य जवाब होना चाहिए! - Tristian
@Triztian कोई और मुझे बता रहा है कि कौन सा जवाब स्वीकार करने के लिए! नहीं। यह "उपरोक्त" स्क्रीन शॉट को संदर्भित करता है (जहां "उपरोक्त" किसी साइट पर कोई समझ नहीं आता है जो उपयोगकर्ताओं को 3 अलग-अलग मानदंडों से उत्तरों को क्रमबद्ध करने देता है) और स्वीकृत उत्तर (ऐप कॉन्फ़िगरेशन) पर बस एक और भिन्नता है पहले 7 महीने से अधिक।
यह वह जवाब भी है जिसने मुझे सर्वश्रेष्ठ मदद की। उपरोक्त स्क्रीनशॉट क्यूक्स 9 अक्टूबर, 14 के उत्तर में है। एंड्रॉइड स्टूडियो में सही कॉन्फ़िगरेशन का चयन करना "रन / डीबग कॉन्फ़िगरेशन का चयन करें" द्वारा किया जाता है, जिसे मेनू बार में ड्रॉप-डाउन मेनू पर बायाँ-क्लिक करके एक्सेस किया जाता है। रन बटन (हरा दाएं-पॉइंटिंग त्रिकोण) के बाएं। एंड्रॉइड ऐप, जिसका नाम, भी चुना जाना चाहिए। अन्य ग्रैडल बिल्ड लक्ष्य हैं जिन्हें डीबग नहीं किया जा सकता है, इसलिए त्रुटि। - Sven
यह उत्तर सिर्फ एंड्रॉइड स्टूडियो का सही तरीके से उपयोग करने के तरीके को दुबला कैसे करना है, अगर यह आपको बस "एप" रन कॉन्फ़िगरेशन को डीबग करने से पहले चुनने के लिए कहता है। यह वास्तविक समस्या का उत्तर नहीं है। - chubbsondubs


मुझे यह त्रुटि लिनक्स पर मिल रही थी, और समस्या यह थी कि एक और पिछली प्रक्रिया ने बंदरगाह लिया और लटका दिया। इसलिए, समाधान पोर्ट को अवरुद्ध करने की प्रक्रिया का पता लगाने के लिए नेटस्टैट है, फिर इस प्रक्रिया को मार दें, या आप मशीन को पुनरारंभ कर सकते हैं।


4
2017-11-07 10:55



क्या आप अपने उत्तर में स्नैपशॉट साझा कर सकते हैं। - Raulp


इस समस्या से बचने के लिए और वास्तव में एंड्रॉइड स्टूडियो के भीतर से लॉन्च करने के लिए, मुझे स्पष्ट रूप से उस बिल्ड वेरिएंट को स्विच करना था जिसमें मैं काम कर रहा था (पैनल के माध्यम से जो बाएं किनारे पर 'बिल्ड वेरिएंट' चुनते समय पॉप अप करता है)। फिर जब वास्तव में मेरे एंड्रॉइड एप्लिकेशन कॉन्फ़िगरेशन (रन / डीबग आइकन के बाईं ओर ड्रॉप डाउन मेनू के माध्यम से चयनित) के लिए डीबग बटन ऊपर शीर्ष पर दबाया जाता है, तो यह उस बिल्ड संस्करण मोड को सही ढंग से तैनात करेगा। (अगर मैं कर सकता तो अच्छा होगा वेरिएंट को अधिक मैन्युअल रूप से स्विच करने के बजाय ड्रॉप डाउन मेनू से विभिन्न बिल्ड प्रकारों को तैनात करने के लिए अलग-अलग एंड्रॉइड ऐप कॉन्फ़िगरेशन सेट अप करें, लेकिन मुझे अभी यह नहीं दिख रहा है कि कैसे।)

enter image description here

आपके build.gradle फ़ाइल में आपके buildTypes अनुभाग में भी, आप शायद चाहते हैं debuggable true, यदि आप डीबगर को मैन्युअल रूप से संलग्न करने का प्रयास करते हैं तो आपकी प्रक्रिया संवाद में दिखाई नहीं देगी।


3
2017-10-09 19:31



जोड़ने के लिए महान टिप debuggable true build.gradle फ़ाइल के लिए! अभी भी डीबगर से सीधे डीबग नहीं कर सकता है लेकिन अब मैं अपनी प्रक्रिया से जुड़ा हूं। धन्यवाद! - Litome


मैं एक ही व्यवहार में भाग गया, उपर्युक्त समाधान मेरे लिए काम नहीं करते थे, लेकिन मेरे पास एक कोने का मामला है: मेरा ऐप android.app.Aplication बढ़ाता है। जो मैंने पाया वह मेरे लिए काम करता है रन / डीबग कॉन्फ़िगरेशन ("कॉन्फ़िगरेशन संपादित करें ...") को संपादित करना है, और "डिफ़ॉल्ट गतिविधि लॉन्च करने" के बजाय "गतिविधि लॉन्च न करें" का चयन करें।


2
2018-05-23 14:54





मैं अभी इस समस्या में चला गया, सरल समाधान: यदि आपके पास कई उदाहरण चल रहे हैं, तो सुनिश्चित करें कि आपकी रन कॉन्फ़िगरेशन अलग-अलग जेएमएक्स पोर्ट निर्दिष्ट करता है। छवि का संदर्भ लें


2
2017-08-29 10:28