2016-03-12 14 views
125

Sto lavorando con React-Native, Android e Genymotion su Mac. Quando eseguo react-native run-android ottengo questo righe alla fine dell'operazione di lancio:React-Native, Android, Genymotion: il server ADB non ha ACK

... 
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. 
... 

Tuttavia, adb devices restituisce questo:

List of devices attached 
192.168.59.101:5555 device 

Finora ho trovato nessuna soluzione per eseguire la mia applicazione sul emulatore. Qualcuno ha riscontrato lo stesso problema?

Grazie, Paul

+0

Questo errore può verificarsi indipendentemente dal funzionamento di Genymotion. –

risposta

292

Dopo ulteriori ricerche ho capito che Genymotion utilizza di default il proprio adb.

enter image description here

sono passato alla mia adb principale (lo stesso utilizzato dai reagire-nativo) ed è risolto il problema. Immagino che, poiché l'adb di Genymotion è stato lanciato per primo, ho ricevuto il messaggio di errore Address already in use.

+4

Grazie per aver postato questo.Ho quasi avuto un attacco di cuore, ho aggiornato i miei studi Android 2.1 ad Anteprima 3 la scorsa notte e la genomotion non si collegherà più. Questo mi ha aiutato a risolverlo. – Simon

+6

Ho provato questa soluzione, ma ho ancora lo stesso errore. Ci sono soluzioni alternative? – calclavia

+1

@ user2254679 hai controllato anche questo thread? http://stackoverflow.com/questions/5703550/my-eclipse-adb-server-didnt-ack-failed-to-start-daemon?rq=1 – Paul

40

Sto usando la genomotion, ma la soluzione di Paul da sola non ha corretto l'errore (per Mac).

ho dovuto:

Aggiornamento Android SDK alla versione più recente (24.4.1) attraverso il manager SDK

Tipo android nella riga di comando

Nel gestore SDK trovare la ultimi strumenti SDK e installazione.

Una volta installato, il percorso dell'SDK dovrebbe aggiornare la nuova posizione dell'SDK come di seguito.

enter image description here

quindi aggiornare il $ ANDROID_HOME di utilizzare il nuovo SDK

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

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

confermarlo è stato aggiunto visualizzando il tuo percorso con echo $PATH

Poi nel genymotion fare quello @ Paolo dice sopra e punto genymotion ADB di utilizzare lo stesso sdk

enter image description here

+0

Funziona con Ubuntu 16.04. Per qualche ragione ho pensato che la directory '$ ANDROID_HOME/tools' non sarebbe stata necessaria sul classpath. Devi aggiungere per connetterti ad adb. – Orar

1

Sistema: di Windows 10

Il mio problema: Impostazione Genymotion per puntare al l'SDK personalizzato non ha avuto alcun effetto. Ho ancora ricevuto il:

Couldn't start project on Android: 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

Quello che ho scoperto è stata la differenza tra le versioni di ADB utilizzate in tutto il sistema.Ecco il comando che ho usato per trovarli:

where /r C:\ adb.exe 

Questo prodotto i risultati:

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 

Navigazione verso ogni directory e in esecuzione:

adb.exe version 

mi ha permesso di vedere che l'Expo è stato esecuzione della versione ADB:

Android Debug Bridge version 1.0.36 
Revision fd9e4d07b0f5-android 

Mentre Genymotion utilizzando l'SDK personalizzato aveva versione (C: \ Users \ Kyle \ AppData \ Local \ Android \ SDK \ platform-tools \ adb.exe):

Android Debug Bridge version 1.0.39 
Revision 3db08f2c6889-android 

Come prova ho preso il file adb (adb.exe, AdbWinApi.dll, AdbWinUsbApi.dll) dal

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

e li mise in una cartella di backup. Ho quindi spostato i file adb situati a

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

nella stessa posizione. Ho ucciso ADB con:

adb kill-server 

che ha causato un riavvio del server adb automaticamente a causa di avere il mio dispositivo Genymotion già in esecuzione. Ho premuto il pulsante "Riavvia" all'interno di Expo XDE e ha immediatamente iniziato a funzionare. Ecco il registro in cui mi ha colpito il pulsante di riavvio al 01:13:04:

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). 

Conclusione: Genymotion e Expo può essere necessario utilizzare la stessa versione di adb in modo che Expo possa comunicare correttamente con l'simulato dispositivo. Indicando Genymotion nella posizione dell'SDK Android e assicurando che Expo XDE abbia la stessa versione consentirà una corretta comunicazione tra i dispositivi. Ho spostato la versione di Expo XDE nel percorso dell'SDK, ma potresti essere in grado di andare dall'altra parte (prendi i file ADB sdk e inseriscili nel percorso della risorsa Expo XDE).

P.S. Sono stato attraverso tutti i post StackOverflow relativi a questo problema. Solo così sapete che il mio task manager mostra tre istanze di adb.exe in esecuzione. Se uccidi qualcuno di loro, loro tornano indietro.

Spero che questo aiuti/acclamazioni

0

ho avuto la stessa cosa mentre ho provato a correre da expo UI. Ha fatto le stesse cose, come descritto nelle risposte, ma l'app non funzionava. Una volta provato, eseguire exp android dalla riga di comando (nella cartella del progetto), l'applicazione è stata eseguita correttamente e le successive volte eseguite dall'interfaccia utente di Expo sono state eseguite correttamente.

2

Ho avuto un problema simile.

Per prima cosa ho disinstallato l'app. Poi ho puntato GenyMotion su Android SDK fornito da Android Studio Successivamente, ho eseguito "adb kill-server" nel terminale. Infine, ho ripetuto "react-native run-android" e ottenuto un successo di build.

Problemi correlati