React-Native, Android, Genymotion: ADB सर्वर ने ACK नहीं किया


168

मैं मैक पर रिएक्ट-नेटिव, एंड्रॉइड और जेनमोशन के साथ काम कर रहा हूं। जब मैं चलाता react-native run-androidहूं तो मुझे यह ऑपरेशन लॉन्च के अंत में मिलता है:

...
04:54:40 E/adb: error: could not install *smartsocket* listener: Address already in use
04:54:40 E/adb: ADB server didn't ACK
04:54:40 E/ddms: '/Users/paulbrie/Library/Android/sdk/platform-tools/adb,start-server' failed -- run manually if necessary
04:54:40 E/adb: * failed to start daemon *
04:54:40 E/adb: error: cannot connect to daemon
:app:installDebug FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:installDebug'.
> com.android.builder.testing.api.DeviceException: Timeout getting device list.
...

हालाँकि, adb devicesयह रिटर्न:

List of devices attached
192.168.59.101:5555 device

अब तक मुझे एमुलेटर पर अपना ऐप चलाने का कोई समाधान नहीं मिला है। किसी को भी एक ही मुद्दे का सामना करना पड़ा है?

धन्यवाद, पॉल


यह त्रुटि चल रही है, भले ही Genymotion चल रहा हो।
इगोरगानापोलस्की

जवाबों:


319

अधिक शोध के बाद मुझे पता चला है कि Genymotion डिफ़ॉल्ट रूप से अपनी स्वयं की अदब का उपयोग करता है।

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

मैं अपनी मुख्य अदब (प्रतिक्रिया-मूलक द्वारा उपयोग की जाने वाली) पर स्विच किया और इसने समस्या हल कर दी। मुझे लगता है कि क्योंकि Genymotion के adb को लॉन्च किया गया था, सबसे पहले मुझे Address already in useत्रुटि संदेश मिला था ।


4
इसे पोस्ट करने के लिए आपका धन्यवाद। मुझे लगभग दिल का दौरा पड़ा था, मैंने कल रात अपने एंड्रॉइड स्टूडियो 2.1 को प्रीव्यू 3 में अपडेट किया और जीनोमिशन अब कनेक्ट नहीं होगा। इससे मुझे इसे हल करने में मदद मिली।
साइमन

7
मैंने इस समाधान की कोशिश की, लेकिन मुझे अभी भी वही त्रुटि मिली है। क्या वैकल्पिक उपाय हैं?
कैलक्लेविया

1
@ user2254679 क्या आपने इस धागे की जाँच की? stackoverflow.com/questions/5703550/…
पॉल

@Paul क्या आप बता सकते हैं कि आप किस रास्ते पर हैं? जहां इस जाता है एशियाई विकास बैंक स्थित है जो प्रतिक्रिया देशी द्वारा किया जाता है? मैं अपने Android SDK का पथ प्रदान करने का प्रयास कर रहा हूं लेकिन यह काम नहीं कर रहा है। अंग्रेजी में सबसे अच्छा होगा।
के पाल

@ कैल, पथ आपके अपने सेटअप के लिए विशिष्ट है। मेरे मामले में यह उस समय मैक में एंड्रॉइड इंस्टॉलेशन से मानक पथ था /Users/$yourName/Library/Android/sdk:। यदि आपने Android स्थापित किया है, तो आपको अपने Android संस्करण / अपने प्लेटफ़ॉर्म के लिए अपना रास्ता खोजना चाहिए।
पॉल

45

मैं जीनोमिशन का उपयोग कर रहा हूं, लेकिन पॉल के समाधान ने अकेले त्रुटि को ठीक नहीं किया (मैक के लिए)।

मुझे करना पड़ा:

एसडीके प्रबंधक के माध्यम से एंड्रॉइड एसडीके को नवीनतम संस्करण (24.4.1) में अपडेट करें

androidकमांड लाइन में टाइप करें

एसडीके प्रबंधक में नवीनतम एसडीके उपकरण ढूंढें और इंस्टॉल करें।

एक बार एसडीके पथ स्थापित करने के बाद नीचे की तरह नए एसडीके स्थान को अपडेट करना चाहिए।

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

फिर नए SDK का उपयोग करने के लिए $ ANDROID_HOME अपडेट करें

export ANDROID_HOME=/usr/local/Cellar/android-sdk/24.4.1_1

export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools

यह पुष्टि करें कि यह आपके पथ को देखकर जोड़ा गया है echo $PATH

फिर genymotion में वही करें जो @Paul ऊपर कहता है और उसी sdk का उपयोग करने के लिए genbotion ADB को इंगित करता है

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


यह ubuntu 16.04 के लिए काम करता है। किसी कारण से मुझे लगा $ANDROID_HOME/toolsकि क्लासपाथ पर डायरेक्टरी जरूरी नहीं होगी। आपको adb से जुड़ने के लिए जोड़ना होगा।
ओरार

10

सिस्टम: विंडोज 10

मेरा मुद्दा: कस्टम SDK को इंगित करने के लिए Genymotion सेट करने का कोई प्रभाव नहीं पड़ा। मुझे अभी भी प्राप्त हुआ:

एंड्रॉइड पर प्रोजेक्ट शुरू नहीं कर सका: स्मार्टसोकेट श्रोता स्थापित नहीं कर सका: 127.0.0.1:5037 पर बांध नहीं सकता: प्रत्येक सॉकेट एड्रेस (प्रोटोकॉल / नेटवर्क एड्रेस / पोर्ट) के केवल एक उपयोग की अनुमति है। (10048) एडीबी सर्वर से ठीक नहीं पढ़ सका * डेमॉन शुरू करने में विफल रहा * त्रुटि: डेमन से कनेक्ट नहीं हो सकता

मुझे पता चला कि पूरे सिस्टम में इस्तेमाल होने वाले एडीबी संस्करणों में अंतर था। यहाँ मैं उन्हें खोजने के लिए इस्तेमाल किया कमान है:

where /r C:\ adb.exe

इससे परिणाम सामने आए:

C:\Program Files\Expo XDE\resources\app\node_modules\xdl\binaries\windows\adb\adb.exe
C:\Program Files\Genymobile\Genymotion\tools\adb.exe
C:\Users\kyle\AppData\Local\Android\Sdk\platform-tools\adb.exe
C:\Users\kyle\AppData\Local\Android\Sdk\platform-tools\adb backup\adb.exe

प्रत्येक निर्देशिका में नेविगेट करना और चलाना:

adb.exe version

मुझे यह देखने की अनुमति है कि एक्सपो एडीबी संस्करण चला रहा था:

Android Debug Bridge version 1.0.36
Revision fd9e4d07b0f5-android

हालांकि कस्टम SDK का उपयोग करने वाले Genymotion का संस्करण था (c: \ Users \ kyle \ AppData \ Local \ Android \ Sdk \ platform-tools \ adb.exe):

Android Debug Bridge version 1.0.39
Revision 3db08f2c6889-android

परीक्षण के रूप में मैंने adb files (adb.exe, AdbWinApi.dll, AdbWinUsbApi.dll) से लिया

c:\Users\kyle\AppData\Local\Android\Sdk\platform-tools\adb.exe

और उन्हें एक बैकअप फ़ोल्डर में रखा। मैंने तब स्थित adb फ़ाइलों को स्थानांतरित किया

c:\Program Files\Expo XDE\resources\app\node_modules\xdl\binaries\windows\adb\adb.exe

उसी स्थान पर। मैंने एडीबी को मार दिया:

adb kill-server

जो पहले से चल रहे मेरे Genymotion डिवाइस होने के कारण स्वचालित रूप से adb सर्वर को पुनरारंभ करता है। मैंने एक्सपो XDE के अंदर "रिस्टार्ट" बटन मारा और यह तुरंत काम करना शुरू कर दिया। यहां वह लॉग है, जहां मैंने 1:13:04 AM पर पुनः आरंभ बटन दबाया है:

12:45:53 AM
could not install *smartsocket* listener: cannot bind to 127.0.0.1:5037: Only one usage of each socket address (protocol/network address/port) is normally permitted. (10048)
could not read ok from ADB Server
* failed to start daemon *
error: cannot connect to daemon
1:13:04 AM
Restarting project and clearing packager cache (Hold shift while clicking restart to avoid clearing cache).
1:13:11 AM
Starting React Native packager...
1:13:17 AM
Scanning 543 folders for symlinks in C:\Users\kyle\git\betalog\node_modules (49ms)
1:13:17 AM
1:13:19 AM
Couldn't adb reverse: closed
1:13:20 AM
Project opened! You can now use the "Share" or "Device" buttons to view your project.
1:13:26 AM
Couldn't adb reverse: closed
1:13:26 AM
Downloading latest version of Expo
1:13:28 AM
Installing Expo on device
1:13:33 AM
Opening on Android device
1:13:56 AM
Building JavaScript bundle: finished in 59643ms.
1:14:01 AM
Dependency graph loaded.
1:14:03 AM
Your JavaScript transform cache is empty, rebuilding (this may take a minute).

निष्कर्ष: Genymotion और Expo को adb के एक ही संस्करण का उपयोग करने की आवश्यकता हो सकती है ताकि एक्सपो सिम्युलेटेड डिवाइस के साथ ठीक से संवाद कर सके। अपने एंड्रॉइड एसडीके स्थान के साथ-साथ एक्सपो एक्सडीई को सुनिश्चित करने के लिए जीनोमिशन की ओर इशारा करते हुए कहा गया है कि एक ही संस्करण उपकरणों के बीच सही संचार की अनुमति देगा। मैंने एक्सपो एक्सडीई संस्करण को एसडीके स्थान पर स्थानांतरित किया, लेकिन आप दूसरे तरीके से जाने में सक्षम हो सकते हैं (एसडीके एडीबी फ़ाइलों को लें और उन्हें एक्सपो एक्सडीई संसाधन स्थान में रखें)।

पुनश्च मैं इस मुद्दे से संबंधित स्टैकओवरफ़्लो पोस्ट के माध्यम से सभी रहा हूँ। बस आप लोग जानते हैं कि मेरा कार्य प्रबंधक adb.exe चलाने के तीन उदाहरण दिखाता है। यदि आप उनमें से किसी को मारते हैं तो वे वापस आ जाते हैं।

आशा है कि यह मदद करता है / चीयर्स


8

हो सकता है कि आपके एडीबी संस्करण बेमेल हों

जाँच:

adb version 

फिर:

cd /Path/to/Android/Sdk/platform-tools && ./adb version

यदि ये दोनों अलग-अलग हैं, तो आपके यहाँ एक त्रुटि है, बस sys से adb निकालें और उस एक को कॉपी करें जो प्लेटफ़ॉर्म-टूल्स / usr / bin / में है


4

यदि आप अपने सिस्टम को साफ रखना चाहते हैं, तो आप Android स्टूडियो के बिना भी Genymotion का उपयोग कर सकते हैं :

  1. की उत्पत्ति की प्रति प्राप्त करें adb। MacOS पर यह सामान्य रूप से है/Applications/Genymotion.app/Contents/MacOS/tools/
  2. अपने पथ के लिए Genymotion टूल डायरेक्टरी जोड़ें - export PATH=/Applications/Genymotion.app/Contents/MacOS/tools/:$PATHअपने ~/.bash_profileया अपने लाइन को निष्पादित / जोड़ें ~/.bash_rc
  3. सुनिश्चित करें कि आप अपने टर्मिनल से adb चला सकते हैं।

( Https://docs.expo.io/versions/latest/workflow/genymotion से )


4

आपके सिस्टम पर adb वर्जन android sdk प्लेटफॉर्म-टूल्स पर adb वर्जन से अलग है। लिनक्स ऑपरेटिंग सिस्टम के लिए नीचे सुझाव मेरे लिए काम कर रहा है

  1. check sys adb वर्जन नीचे कमांड को रन करता है

अदब संस्करण

Android डीबग ब्रिज संस्करण 1.0.39

  1. एसडीके एडीबी संस्करण की जाँच करें

सीडी / रूट / एंड्रॉइड / एसडीके / प्लेटफ़ॉर्म-टूल

./bb संस्करण

Android डीबग ब्रिज संस्करण 1.0.32

  1. प्रतिलिपि

आरएम / यूएसआर / बिन / अदब

[नोट: उपरोक्त आदेश मौजूदा एडीबी को हटा दें और फिर एडीबी को sdk / प्लेटफ़ॉर्म-टूल डायरेक्टरी से कॉपी करें]

sudo cp / root / Android / Sdk / platform-tools / adb / usr / bin / adb

फिर इस कमांड का उपयोग करके प्रोजेक्ट को चलाएं

प्रतिक्रिया-देशी रन-एंड्रॉइड


यह लिनक्स के लिए एक अच्छा समाधान है, यह एंड्रॉइड स्टूडियो के साथ या उसके बिना काम करता है
मैरो शिट्टू

3

एक्सपो यूआई से चलने की कोशिश करते समय मेरे पास एक ही चीज थी। क्या ऐसा ही हुआ, जैसा कि उत्तर में वर्णित है, लेकिन ऐप नहीं चल रहा था। जब एक बार exp androidकमांड लाइन (प्रोजेक्ट फ़ोल्डर में) से चलाने की कोशिश की जाती है, तो एप्लिकेशन सफलतापूर्वक चला गया और अगली बार एक्सपो UI से सफलतापूर्वक चला गया।


2

मेरा मुद्दा भी ऐसा ही था।

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


2

मेरे लिए काम करने वाले चरण हैं:

  • $ एडीबी किल-सर्वर

  • $ एडीबी स्टार्ट-सर्वर

  • $ cd Android

  • $ ./gradlew साफ

  • $ cd ।।

  • $ प्रतिक्रिया-देशी रन-एंड्रॉइड


2

उबंटू के लिए

इससे मेरा काम बनता है!!

  1. check sys adb वर्जन

अदब संस्करण

Android डीबग ब्रिज संस्करण 1.0.39

2 चेक एसडीके एडीबी संस्करण

cd / home / user_name / Android / sdk / platform-tools

./bb संस्करण

Android डीबग ब्रिज संस्करण 1.0.32

  1. प्रतिलिपि

sudo cp / home / user_name / Android / sdk / platform-tools / adb / usr / लोकल / बिन

बस इतना ही! यह अब काम करेगा।


1

1. जीनोम में कस्टम sdk पथ। (मान लीजिए कि यह एक काम नहीं करेगा, दूसरे को निष्पादित करने का प्रयास करें)

2. मैन्युअल रूप से निष्पादित करने के लिए इस कमांड का उपयोग करें (SDK PATH / adb वह शुरुआत -n / Package name / MainArtity) होगा।

C: \ Users \ AppData \ Local \ Android \ Sdk / platform-tools / adb वह शुरू कर रहा हूँ com -example / com.example.ManiActivity

और प्रतिक्रिया-देशी रन-एंड्रॉइड का उपयोग करके एप्लिकेशन को चलाने का प्रयास करें।


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