दूरस्थ डिबगर से कनेक्ट करने में असमर्थ


149

मैं React.JS का उपयोग कर रहा हूं और जब मैं करता हूं react-native run-android(अपने डिवाइस को प्लग इन करता हूं) तो मैं एक खाली पृष्ठ देखता हूं। जब मैं डिवाइस को हिलाता हूं और Debug JS Remotelyविकल्प सूची से चयन करता हूं तो मुझे निम्नलिखित स्क्रीन दिखाई देती है।

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

जानकारी के लिए:

OS: Ubuntu 16.04
Node version is: v4.6.2
java version "1.8.0_111"
react": "15.4.1
react-native": "0.38.0

1
एंड्रॉइड पर आपको react-native startसर्वर शुरू करने के लिए एक अलग विंडो में चलना होगा ।
अलेक्जेंडर पोपोविक

इसे बदलने के बारे में क्या: compile "com.facebook.react:react-native:+"संकलन अनुभाग पर।
शैतान पांडेय

आपको देव मेनू में "डीबग" सक्षम करना चाहिए
UA_

जवाबों:


280

मेरे मामले में मुद्दा यह था कि एमुलेटर एक अनुरोध कर रहा था:

http://10.0.2.2:8081/debugger-ui

के बजाय:

http://localhost:8081/debugger-ui और अनुरोध विफल हो रहा था।

समस्या को हल करने के लिए: अपने एमुलेटर पर दूरस्थ डिबगिंग को सक्षम करने से पहले , http://localhost:8081/debugger-uiक्रोम में खोलें । फिर दूरस्थ डिबगिंग सक्षम करें और क्रोम पृष्ठ पर वापस जाएं जहां आपको अपने कंसोल लॉग्स को देखना चाहिए।


1
मेरे लिए काम किया - thx! क्या आपने पहले क्रोम टैब खोलने से बचने के लिए इसे लोकलहोस्ट से कनेक्ट करने की कोशिश करने के लिए इसे सेट करने का एक तरीका खोजा?
izikandrw

26
आप अपने एमुलेटर पर देव सेटिंग्स (Ctrl + M) में जा सकते हैं और डीबग सर्वर को 'लोकलहोस्ट: 8081' में बदल सकते हैं।
DannyMoshe

अंतिम पैराग्राफ केवल एक चीज है जो मेरे लिए काम करती है।
पेड्रो ओटेरो

3
धन्यवाद। यह पहली बार में 10.0.2.2 पर कैसे सेट हो जाता है?
चार्लीब

3
आपके एमुलेटर से बने 'लोकलहोस्ट' का अनुरोध एमुलेटर पर लूपबैक पोर्ट को एक्सेस करने की कोशिश करेगा, न कि आपके पीसी पर (आप अपने पीसी का लूपबैक चाहते हैं)। इसे हल करने के लिए, Android आपको अपने पीसी पर चलने वाली सेवाओं का उपयोग करने की अनुमति देने के लिए 10.0.2.2 उपनाम बनाता है ( डेवलपर संदर्भ के लिए developer.android.com/studio/run/emulator-networking देखें )। जहां तक ​​अनुरोध विफल क्यों नहीं हुआ है, यह सुनिश्चित नहीं है, लेकिन ऐसा लगता है कि यह प्रतिक्रिया / एंड्रॉइड के साथ github.com/facebook/react-native/issues/17970 देखें ।
डैनीमोशे

181

निम्नलिखित समस्या का हल:

  • Cmd + Mएमुलेटर स्क्रीन पर प्रेस करें
  • के लिए जाओ Dev settings > Debug server host & port for device
  • सेट localhost:8081
  • Android एप्लिकेशन को पुन: चलाएँ: react-native run-android

अब डिबगर जुड़ा हुआ है!


आपमें से जिन्हें सीएमडी + एम बटन काम नहीं करने की समस्या है, उनके लिए मैंने './bb शेल इनपुट कीवेंट 82' का उपयोग शेल में किया है, जहां adb इसे ट्रिगर करने के लिए स्थित है। शॉर्टकट कीज़ ने उसके बाद काम करना शुरू किया!
जेफ एल

यू सर एक खूनी किंवदंती है। x
न्यूबायएड

अब यह सिर्फ दूरस्थ डिबगर से जुड़ने की कोशिश कर रहा है ... अनंत काल के लिए
फेकब्यूज

44

मैंने इसे करते हुए हल किया adb reverse tcp:8081 tcp:8081और फिर reloadअपने फोन पर।


36

मेरे मामले में, डिबग जेएस रेमोटली को चुनकर क्रोम लॉन्च किया गया, लेकिन एंड्रॉइड डिवाइस के साथ कनेक्ट नहीं हुआ। आम तौर पर, नए क्रोम टैब / विंडो में एड्रेस बार में डिबगिंग URL पूर्व-आबादी होगी, लेकिन इस स्थिति में पता बार खाली था। समयावधि अवधि के बाद, "दूरस्थ डिबगर से कनेक्ट करने में असमर्थ" त्रुटि संदेश प्रदर्शित किया गया था। मैंने इसे निम्नलिखित प्रक्रिया के साथ तय किया है:

  • Daud adb reverse tcp:8081 tcp:8081
  • http://localhost:8081/debugger-uiमेरे Chrome ब्राउज़र के पता फ़ील्ड में पेस्ट करें । आपको सामान्य डिबगिंग स्क्रीन देखनी चाहिए लेकिन आपका ऐप अभी भी कनेक्ट नहीं होगा।

इससे समस्या का हल निकलना चाहिए। यदि नहीं, तो आपको निम्नलिखित अतिरिक्त कदम उठाने की आवश्यकता हो सकती है:

  • अपने एंड्रॉइड डिवाइस से ऐप को बंद और अनइंस्टॉल करें
  • के साथ एप्लिकेशन को पुनर्स्थापित करें react-native run-android
  • अपने एप्लिकेशन पर दूरस्थ डीबगिंग सक्षम करें।
  • आपका ऐप अब डिबगर से जुड़ा होना चाहिए।

2
टॉम ... धन्यवाद! इससे पहले मैंने अपना आईपी पता ("देव सेटिंग" -> "डिवाइस के लिए डिबग सर्वर होस्ट") xxxx: 8081
atreeon

11

मेरे पास एक समान मुद्दा था जिसने मुझे इस सवाल पर ले गया। मेरे ब्राउज़र डीबगर में मुझे यह त्रुटि संदेश मिल रहा था:

' Http: // localhost: 8081 / index.delta; प्लेटफ़ॉर्म = Android & dev = true & minify = false ' पर लाने के लिए मूल ' http://127.0.1.1:8081 ' को CORS नीति द्वारा अवरुद्ध कर दिया गया है: कोई 'एक्सेस-कंट्रोल' -ऑलो-ओरिजिन ’हेडर अनुरोधित संसाधन पर मौजूद है। यदि एक अपारदर्शी प्रतिक्रिया आपकी आवश्यकताओं को पूरा करती है, तो संसाधन को अक्षम करने के लिए 'नो-कॉर्स' के लिए अनुरोध के मोड को सेट करें।

मुझे यह महसूस करने में थोड़ी देर लगी कि मैं अपने डिबगर के 127.0.0.1:8081बजाय उपयोग कर रहा localhost:8081हूं।

इसे ठीक करने के लिए, मुझे बस Chrome को इससे बदलना होगा:

http://127.0.0.1:8081/debugger-ui/

सेवा

http://localhost:8081/debugger-ui/

1
मेरे लिए वास्तव में विपरीत था। लेकिन वास्तव में "लोकलहोस्ट" आमतौर पर 127.0.0.1 के बराबर होता है। यह इस बात पर निर्भर करता है कि स्थानीयहोस्ट के रूप में पते के लिए क्या निर्धारित है। हमेशा स्पष्ट होना बेहतर होता है
कार्माइन टैम्बस्किया

2

सुनिश्चित करें कि बंडल सर्वर प्रदान करने के लिए नोड सर्वर पृष्ठभूमि में चल रहा है। सर्वर का उपयोग शुरू करने के लिए npm startया react-native startविकास के दौरान टैब को खुला रखें


1
फिर भी काम नहीं करता है। न तो टर्मिनल वापसी मुझे त्रुटियों
Splunk

1
क्या आप कोई प्रॉक्सी सर्वर या प्रॉक्सी सॉफ्टवेयर चला रहे हैं जैसे चर ... उन्हें रोकें अगर कोई है
चेतन एन

नहीं, मैं
स्पंक

2

मेरा मामला यह है कि जब मैं रिमोट जेएस डिबगिंग को सक्षम करता हूं, तो यह क्रोम लॉन्च करेगा, लेकिन इसे कनेक्ट नहीं कर सकता।

मैंने चलाने की कोशिश की है:

adb reverse tcp:8081 tcp:8081 

, किया, लेकिन काम नहीं किया।

मैंने अपने क्रोम को पूरी तरह से अनइंस्टॉल कर दिया और एक नया स्थापित किया। और यह काम करता है।


1
  1. प्रतिक्रिया-मूल प्रारंभ - एक टैब में कैश-कैश और दूसरे में प्रतिक्रिया-मूल रन-एंड्रॉइड
  2. adb रिवर्स tcp: 8081 tcp: 8081 (ताकि आप इसे अपनी स्क्रिप्ट में जोड़ सकें और यार्न रन adb-रिवर्स चलाएं )
  3. यदि आप एंड्रॉइड का उपयोग कर रहे हैं, तो अपने फोन को हिलाने के बजाय एक शानदार टिप चलाएं एडीबी कमांड।

तो आप चला सकते हैं:

  • एडीबी शेल इनपुट कीवेंट 82 ( मेनू विकल्प )
  • एडीबी शेल इनपुट कीवेंट 46 46 ( पुनः लोड )

1

यहाँ अन्य उत्तर मेरे लिए एक महत्वपूर्ण कदम याद कर रहे थे। AndroidManifest.xml में मुझे उपयोग करने की आवश्यकता है

    <application
      ...
      android:usesCleartextTraffic="true">

जब तक आप असुरक्षित http अनुरोधों का समर्थन नहीं करना चाहते, तब तक आप संभवतः इसे अपने ऐप के उत्पादन रिलीज़ में नहीं रखना चाहते।

जब मैंने इसे अपने AndroidManifest.xml में जोड़ा, तब मैंने टॉम अरंडा के उत्तर का पालन किया, और एमुलेटर अंततः डिबगर से कनेक्ट करने में सक्षम था।


0

मैंने @sajib का उत्तर दिया और बंदरगाहों को पुनर्निर्देशित करने के लिए इस स्क्रिप्ट का उपयोग किया:

#!/usr/bin/env bash

# packager
adb reverse tcp:8081 tcp:8081
adb -d reverse tcp:8081 tcp:8081
adb -e reverse tcp:8081 tcp:8081

echo "🚧 React Native Packager Redirected 🚧"

0

अपने एप्लिकेशन को अनइंस्टॉल करें, फिर प्रतिक्रिया-देशी रन-एंड्रॉइड चलाएं। इसके बाद क्रोम की जगह डिबगिंग एंड पर क्लिक करें http: // localhost: 8081 / डिबगर-यूआई / , एंड रन रन-देशी रन-एंड्रॉइड। अगर आप अभी भी फिर से कोशिश नहीं कर पाए हैं


0

विशेषज्ञ डेवलपर्स को विशेष रूप से Ribamar Santosप्रदान किए गए सभी प्रभावशाली उत्तरों को शामिल करते हुए , यदि आप इसे काम नहीं कर रहे हैं, तो आपको कुछ अधिक मुश्किल जांच करनी चाहिए!

Airplane modeअपने (अनुकरण) फोन की तरह कुछ ! या आपके network status of Emulator( Data status and Voice status on Cellular tab of Emulator configuration) जिसे नेटवर्क व्यक्त नहीं करने के लिए हेरफेर किया जा सकता है! कुछ अनुकरण की जरूरत के लिए!

मैंने इस ट्रिक से इस समस्या को दूर किया है! यह छेद खोजने के लिए थोड़ा लुभावनी डिबग था!


0

मेरे मामले में भी इसे npm पैकेज स्थापित करने की आवश्यकता है

इसलिए

npm install react-native-debugger -g

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.