Errore ADB e Genymotion: "il server adb è obsoleto. uccidere … non può bind 'tcp: 5037' il server ADB non ACK "

Cercando di utilizzare adb shell da terminal dopo l'avvio di emulatore genymotion e ottengo questo errore:

 adb server is out of date. killing... cannot bind 'tcp:5037' ADB server didn't ACK * failed to start daemon * error: 

Ho letto in questa risposta su stackoverflow per eseguire questo command killall -9 adb così ho fatto e poi mi dice di cambiare le impostazioni genymotion per utilizzare gli strumenti SDK personalizzati come i seguenti:

  • Avvia applicazione sul command vocale (android)
  • È ansible tagliare una bitmap a piccoli pezzi senza caricare l'intera cosa in memory?
  • Lettura del file di text dal server su Android
  • com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: file duplicati
  • Applicazione Android come servizio senza attività
  • IllegalStateException: Imansible modificare l'ID del contenitore del frammento
  • immettere qui la descrizione dell'immagine

    Lo ha fatto anche come si può vedere nello screenshot sopra, ma continuo a ricevere lo stesso messaggio di errore.

    I miei registri ADB di android studio danno il seguente messaggio each volta che cerco di eseguire adb shell :

      DeviceMonitor: Adb connection Error:EOF DeviceMonitor: Connection attempts: 1 

    Ho anche provato a creare un nuovo dispositivo virtuale e utilizzarlo senza alcun successo.

  • Deselect il metodo alternativo di RadioButton
  • Android Posso utilizzare JOIN alla query mediastore
  • Come impostare lo background disegnato a livello di programmazione in Android
  • Avviso obsoleto Kotlin Runtime (Kotlin plugin 1.1.2-release-Studio2.3-3)
  • Android Data Binding NoSuchMethodError
  • Come scaricare file da webview Android?
  • 3 Solutions collect form web for “Errore ADB e Genymotion: "il server adb è obsoleto. uccidere … non può bind 'tcp: 5037' il server ADB non ACK "”

    aggiornare l'adb a 1.0.32 se si dispone di 1.0.31 o inferiore

     adb version Android Debug Bridge version 1.0.31 wget -O - https://skia.googlesource.com/skia/+archive/cd048d18e0b81338c1a04b9749a00444597df394/platform_tools/android/bin/linux.tar.gz | tar -zxvf - adb sudo mv adb /usr/bin/adb sudo chmod +x /usr/bin/adb adb version Android Debug Bridge version 1.0.32 

    Nessuna di queste soluzioni ha funzionato per me.

    La soluzione che ha risolto il mio errore è stato quello di aggiungere sia le directory mancanti / Android / Sdk / tools & / Android / Sdk / platform-tools directory alla mia variabile PATH di ambiente, questo può essere ottenuto con il seguente command:

     export PATH=/home/{username}/Android/Sdk/tools:/home/{username}/Android/Sdk/platform-tools:$PATH 

    Assicurarsi di interpolare il tuo nome utente nel command, sostituendo {username} con il tuo nome utente del sistema operativo.

    In questo modo dirigerà la linea di command per cercare la variabile PATH di Environmant per la posizione corretta dell'eseguibile adb, senza questa impostazione di variabile di ambiente, il tuo sistema non sa where cercare il file eseguibile corretto.

    La causa principale di questo problema è che si tenta di eseguire adbs di diverse versioni. L'adb laterale PC (Host) è composto da due parti: server adb e adb.

    adb <—-> server adb <——– USB ——-> adbd (dispositivo)

    Il server adb e adb è in realtà lo stesso binario, ma il server adb è in esecuzione in background quando si esegue il primo command di un adb. Dopo di che, il command adb contatterà quale server adb each volta che esegue adb e controlla innanzitutto le versioni del server adb in esecuzione. Se la versione non corrisponde, vedrai che il server adb è obsoleto. uccidendo … '. Questa è l'unica ragione.

     int adb_connect(const std::string& service, std::string* error) { // first query the adb server's version int fd = _adb_connect("host:version", error); ... if (version != ADB_SERVER_VERSION) { printf("adb server is out of date. killing...\n"); fd = _adb_connect("host:kill", error); adb_close(fd); /* XXX can we better detect its death? */ adb_sleep_ms(2000); goto start_server; } 

    Per risolvere questo problema, devi solo assicurarsi di non eseguire tring per eseguire diverse versioni adb.

    1. Individuare il path binario di esecuzione del server adb utilizzando uno strumento di gestione task, cerca "adb". controllare la sua versione usando il command

    [path alla versione adb] / versione adb

    L'output come questa:

     Android Debug Bridge version 1.0.35 Revision 68de85bda98d-android 

    "1.0.35" è il numero della versione.

    1. controllare la versione dell'adb che causa il problema. basta digitare

    versione adb

    1. confrontare i numbers di versione, il must corrisponde.

    se non si abbinano, è ansible:

    • basta mantenere un solo adb, eliminare altri.
    • oppure è ansible ignorare l'errore. se sempre mostra, scopri chi sta eseguendo diversi strumenti adb per te e lo interrompe. Ad esempio, un programma di assistenza telefonica.
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.