Wersja serwera adb nie pasuje do tego klienta

151

Ilekroć próbuję biegać adb devices:

            $ adb devices
            * daemon not running. starting it now *
            * daemon started successfully *
            List of devices attached
            HT0ANRV05740    device

Mówi, że demon nie działa i uruchamia go ponownie.

Następnie, jeśli ponownie uruchomię urządzenia adb, robi to to samo -

            $ adb devices
            adb server is out of date.  killing...
            * daemon started successfully *
            List of devices attached
            HT0ANRV05740    device

Następnie, jeśli uruchomię go ponownie, ponownie robi dokładnie to samo -

            $ adb devices
            adb server is out of date.  killing...
            * daemon started successfully *
            List of devices attached
            HT0ANRV05740    device

Proszę pomóż!!

Ponadto mój DDMS ciągle przekazuje mi następującą wiadomość -

[2011-02-23 16:17:05 - DeviceMonitor]Adb connection Error:An existing connection was forcibly closed by the remote host

Oto dzienniki sprzed ponownego uruchomienia adb -

              1291        locapi_rpc_glue  V  loc_ioctl
              1291                    RPC  D  written RPC packet size: [480]
              1291                    RPC  D  read RPC packet
              1291                    RPC  D  read RPC packet size: [28]
              1291             lib_locapi  V  qct_loc_eng_inject_xtra_data, inject part = 100, len = 167, len = 167
              1291             lib_locapi  V  qct_loc_eng_inject_xtra_data, total part = 100, len = 167
              1291        locapi_rpc_glue  V  loc_ioctl
              1291                    RPC  D  written RPC packet size: [248]
              1291                    RPC  D  read RPC packet
              1291                    RPC  D  read RPC packet size: [28]
              1291             lib_locapi  D  qct_loc_eng_inject_xtra_data: injected 39767, SUCCESS
              1291             lib_locapi  V  inject_xtra_waiting = flase
              1291    GpsLocationProvider  D  Releasing wakelock
              1291            WifiService  D  releaseWifiLockLocked: WifiLock{NetworkLocationProvider type=2 binder=android.os.Binder@47aead50}
              1291            WifiService  D  enable and start wifi due to updateWifiState
              1218            rmt_storage  I  rmt_storage open event
              1218            rmt_storage  I  rmt_storage client thread started
              1218            rmt_storage  I  rmt_storage events processing done
              1218            rmt_storage  I  rmt_storage register cb event
              1218            rmt_storage  I  rmt_storage status id = 2
              1218            rmt_storage  I  rmt_storage events processing done
              1218            rmt_storage  I  rmt_storage open event
              1218            rmt_storage  I  rmt_storage client thread started
              1218            rmt_storage  I  rmt_storage events processing done
              1218            rmt_storage  I  rmt_storage register cb event
              1218            rmt_storage  I  rmt_storage status id = 2
              1218            rmt_storage  I  rmt_storage events processing done
              1218            rmt_storage  I  rmt_storage write event
              1218            rmt_storage  I  unblock rmt_storage client thread
              1218            rmt_storage  I  rmt_storage events processing done
              1218            rmt_storage  I  rmt_storage write: bytes written = 3145216
              1218            rmt_storage  I  rmt_storage write: bytes written = 512
              1218            rmt_storage  I  rmt_storage status handle = 1
              1291       BatteryStatsImpl  I  notePhoneSignalStrengthLocked: 4->3
              1218            rmt_storage  I  rmt_storage write event
              1218            rmt_storage  I  rmt_storage events processing done
              1218            rmt_storage  I  unblock rmt_storage client thread
              1291    PowerManagerService  D  New lightsensor value:40, lcdValue:143
              1291    PowerManagerService  D  lightSensorChangedLocked, buttonValue >= 0, mPowerState = 3
              1218            rmt_storage  I  rmt_storage write: bytes written = 3145216
              1218            rmt_storage  I  rmt_storage write: bytes written = 512
              1218            rmt_storage  I  rmt_storage status handle = 2
              1291                    RPC  D  read RPC packet
              1291                    RPC  D  read RPC packet size: [80]
              1291        locapi_rpc_glue  V  Callback received: 80 (cb_id=0x50B0000 handle=1)
              1291                    RPC  D  written RPC packet size: [28]
              1470   usicWidgetController  D  unbindMusicPlaybackService()
              1707   MediaPlaybackService  E  BadQueue mPlayListLen : 0 mAlbumListLen : 0 mShrinkAlbumListLen : 0
              1291    NotificationService  V  Battery Full, Charging
              1291                 lights  E  write ok string=0,len=1
              1291                 lights  E  write ok string=0,len=1
              1291                 lights  E  write ok string=0 0,len=3
              1291                 lights  E  write ok string=1,len=1
              1707       MediaPlayer.java  D  setOnCompletionListener being cleaned to null
              1291                 lights  E  write ok string=0,len=1
              1291                 lights  E  write ok string=0 0,len=3
              1291    NotificationService  V  Turn off Jogball/OJ LED
              1291    NotificationService  D  cancelNotification, ACTION_NOTIFICATION_REMOVE,pkg=com.htc.music,id=1
              1291           AudioService  I   AudioFocus  abandonAudioFocus() from android.media.AudioManager@476ddee0com.htc.music.MediaPlaybackService$5@476dd838
Arunabh Das
źródło
Pomogło mi wyjść z aplikacji Helium na komputer, która ma własną wersję adb. :)
Velda
W moim przypadku było to Genymotion, istnieje konfiguracja do korzystania z własnej wersji lub możesz ustawić własną.
Crysfel
W aosp zmieniłem nazwę aosp/out/host/darwin-x86/bin/adbna, adb-aospponieważ poza aliasingtym moja lokalna (poza AOSP) wersja nie działała.
Paschalis

Odpowiedzi:

299

Czy używasz Genymotion na urządzeniu wirtualnym?

jeśli tak, ten błąd prawdopodobnie pojawił się, ponieważ ADB z Genymotion spowodował konflikt z ADB z Android SDK (używając tego samego numeru portu), aby to naprawić, po prostu przejdź do settings=> wybierz ADBtab => kliknij opcję Use custom Android SDK Toolsi ustaw folder SDK

wprowadź opis obrazu tutaj

po skonfigurowaniu tego spróbuj ponownie uruchomić adb, przechodząc do folderu, w platform-toolsktórym został adbumieszczony i wykonaj następujące polecenie:

  • ./adb kill-server
  • ./adb start-server

* wskazówki: Możesz zamknąć proces Genymotion przed uruchomieniem powyższej komendy

Mam nadzieję, że to pomoże.

Aditya Kresna Permana
źródło
Dziękuję Aditya !!! wreszcie przyzwoita odpowiedź. Zaczęło się po aktualizacji Android Studio. Szalałem z tym, przeinstalowałem sdk i wszystko. Myślałem, że to błąd w nowej wersji.
TacoEater
1
Tylko to pomogło! Istnieje małe narzędzie o nazwie „adbfix”, które dało mi wskazówkę, że może to być problem związany ze ścieżką, ale w rzeczywistości nie zrobiło nic, aby rozwiązać problem.
icarus74
Pokocham Genymotion, ponieważ emulatory zapasów zużywają zbyt dużo zasobów, ponieważ nieustannie podgrzewają mój pobity laptop działający na Ubuntu.
thethakuri
1
Nie mam zainstalowanego genymotion w swoim systemie. Jak to naprawić?
arka.b
7
Każdy emulator genymotion musi zostać zamknięty przed uruchomieniem powyższych poleceń.
Robert
63

Odinstalowałem Dell PC Suite i HTC Sync z mojego komputera i ten problem zniknął.

EDYCJA: Aby wyjaśnić nieco przyczynę tego problemu: Synchronizacja HTC jest dostarczana z własnym serwerem ADB. I aktualizuje zmienną środowiskową PATH, aby wskazywała na wersję serwera. Edytuj zmienną PATH i usuń odniesienie do katalogów HTC Sync. Teraz znowu używasz Google ADB.

Arunabh Das
źródło
1
Ten problem występuje w moim urządzeniu Apple Mac OS-X.
Ritesh Kumar Singh
4
Problemem była HTC Sync. Ciągle działa w tle, powodując konflikty z adb.exe
rharvey
LG AirBridge spowodowało u mnie problem - odinstalowanie go, a następnie uruchomienie adb start-serverdziałało.
jamsandwich
1
Jako programista potrzebuję sterowników HTC USB, które są dołączone do programu HTC Sync Manager. To jedyny przypadek dla systemu Windows 10, który jest systemem operacyjnym, którego używam. Po instalacji aplikacja HTC Sync będzie działać i nieprzerwanie działać w tle. Chcesz otworzyć Menedżera zadań> kartę Usługi, a następnie wyłączyć zadanie w tle HTCMonitorService. Zapobiegnie to konfliktom między HTC Sync a Google ADB, a także zapobiegnie blokowaniu się Google ADB, gdy urządzenia HTC są podłączone do komputera.
tom_mai78101
28

Uważam, że czasami muszę jawnie ręcznie zabić i ponownie uruchomić serwer:

adb kill-server
adb start-server

Ten szok jest na ogół wystarczający, aby ponownie stanąć na nogi i zapobiega powtarzaniu adb server is out of date. killing...wiadomości.

Andy
źródło
Wydaje się, że zabijanie i ponowne uruchamianie zadziałało dla mnie; jednak teraz otrzymuję komunikat o błędzie „błąd: więcej niż jedno urządzenie i emulator”, kiedy to robię: „adb tcpip 5555” zgodnie z instrukcjami zaakceptowanej odpowiedzi.
jay_t55
W moim przypadku działa wiele procesów adb, więc wykonuję wiele wywołań, adb kill-serverdopóki nie pojawi się komunikat „demon nie działa ...”
mr5
22

Upewnij się, że nie działają żadne inne procesy adb

W systemie może działać więcej niż jeden proces adb. Narzędzia takie jak Android Reverse Tether mogą korzystać z własnej wersji narzędzia adb, dlatego wersja w pamięci może kolidować z wersją uruchamianą z wiersza poleceń (za pośrednictwem zmiennej ścieżki).

Windows

W systemie Windows naciśnij CTL+ Shift+, ESCaby uzyskać dostęp do Menedżera zadań, posortuj w kolumnie Nazwa obrazu , a następnie zabij wszystkie wystąpienia adb.exe, klikając prawym przyciskiem myszy i wybierając opcję Zakończ proces . Zwróć uwagę, że istnieje wiele wystąpień adb.exeponiższych:

Wiele instancji adb.exe - jak zabić

Linux (Android)

W środowisku Linux po prostu użyj kill -9polecenia. Coś takiego działało na uruchomionym urządzeniu z Androidem adb(użyj psdanych wyjściowych, wyszukaj grepproces zaczynający się od adb, pobierz identyfikator procesu z adbprocesów i wyślij ten identyfikator do kill -9polecenia):

kill -9  $(ps  | grep "S adb" | busybox awk '{print $2}')

Następnie uruchom ponownie adb

Po rozwiązaniu adbprocesów - a tym samym konfliktów - spróbuj ponownie uruchomić adbz wiersza poleceń:

adb start-server
CJBS
źródło
W moim przypadku dowiedziałem się, że w ramach GapDebug działa inna instancja adb. Zatrzymanie GapDebug, zabicie działającego procesu adb i wywołanie ./adb start-server w ~ / Library / Android / sdk // platform-tools rozwiązało problem.
Gwened
20

W moim komputerze (Ubuntu 14.04 i Genymotion 2.5.2) źródłem problemu było to, że miałem 2 pliki adb różnych wersji.

(Wcześniej, zawężając to źródło problemu, miałem już Ustawienia Genymotion> „Użyj niestandardowych narzędzi Android SDK” odnoszących się do zainstalowanego katalogu Android SDK mojego komputera, zgodnie z zaleceniami Aditya Kresna Permana. Próbowałem też zabić i uruchomić serwer adb i kilka innych rozwiązania z całej sieci).

Następnie zobaczyłem, że uruchomiony adb versionz mojego katalogu instalacyjnego Android SDK „~ / Android / Sdk / platform-tools” utworzony - „Android Debug Bridge w wersji 1.0.32”

Ale adb versionpolecenie z katalogu „/ usr / bin” zostało utworzone - „Android Debug Bridge w wersji 1.0.31”

Tak więc po prostu wykonałem - http://bernaerts.dyndns.org/linux/74-ubuntu/328-ubuntu-trusty-android-adb-fastboot-qtadb, aby zaktualizować adb w „/ usr / bin”

# 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

A teraz bieganie adb devicesdziała idealnie zgodnie z oczekiwaniami.

Rozwiązało również powiązany problem, który zanim moja aplikacja PhoneGap (Cordova) nie została zintegrowana z urządzeniem wirtualnym Genymotion. Teraz oczywiście ten problem również został rozwiązany.

Rohan_Paul
źródło
Dziękuję bardzo. Zaoszczędziłem mój czas. Ten działa doskonale na Ubuntu 14.04. Czy chciałbyś wiedzieć, skąd masz adres URL wget adb? @Rohan_Paul
Akbar Sha Ebrahim
Dostaję to teraz: bash: / usr / bin / adb: Nie ma takiego pliku lub katalogu
Tushar Saha
17

Jest to spowodowane tym, że używasz innej reklamy niż ta zawarta w SDK. Jeśli używasz Linuksa, sprawdź, gdzie znajduje się plik binarny adb

which adb
Expected Output : ANDROID_SDK/platform-tools/adb

Jeśli nie wskazuje na ANDROID_SDK / platform-tools / adb, oznacza to, że używasz starej wersji adb zainstalowanej w innej lokalizacji na komputerze.

Nie ma nic złego w uruchamianiu adb innego niż ten dostarczany z SDK, ale wadą jest to, że nie jest aktualizowany automatycznie po zaktualizowaniu zestawu SDK dla systemu Android i dlatego napotykasz ten problem z przestarzałą wersją.

Łatwiejsze rozwiązanie i uniknięcie tego problemu w przyszłości zmień nazwę starszego (mylącego) pliku binarnego adb na coś innego.

Postępuj zgodnie z instrukcjami, aby rozwiązać ten problem.

$ which adb
*o/p /usr/bin/adb  -   (output will depend on your machine)*
$ cd /usr/bin/
$ ls -lt | grep adb
*o/p -rwxr-xr-x 1 root   root      160912 Mar 31  2016 adb*
$ sudo mv adb adb_bakup
$ ls -lt | grep adb
o/p -rwxr-xr-x 1 root   root      160912 Mar 31  2016 adb_bakup
$ export PATH="/path/to/android_sdk/platform-tools:$PATH"
$ which adb  
*o/p <your android sdk dir>/platform-tools/adb*   ---> You are all good now
Ach
źródło
Wypróbowałem to z mojego Maca, po prostu mówi mi, że nie mam pozwolenia na zmianę nazwy?
Jay Smoke
Potrzebujesz uprawnień administratora, aby zmienić nazwę katalogu w / usr.
Ach
Zalogowałem się jako root i nadal nie mogłem tego zmienić.
Jay Smoke
świetne rozwiązanie, miałem link symboliczny adb do ../ Cellar / ..., więc nawet jeśli ostatnia wersja adb została pobrana z menedżerem sdk, ustawienie dobrej ścieżki naprawiającej problem z nieaktualnością
Luidgi Gromat
15

Właśnie wyszedłem z HTC Sync, spróbowałem ponownie i zadziałało. Uwaga: telefon stał się czarny (zablokowany), właśnie go włączyłem i moja aplikacja była uruchomiona. :)

Nemi
źródło
Miałem ten sam problem z ZTE Sync, usunąłem go i moje urządzenia były wyświetlane.
ovejaexiste
11

System: Windows 10

Mój problem : ustawienie Genymotion tak, aby wskazywało na niestandardowy zestaw SDK, nie miało żadnego wpływu. Nadal otrzymałem:

Nie można uruchomić projektu na Androidzie: nie można zainstalować nasłuchiwania smartsocket : nie można powiązać z 127.0.0.1:5037: Normalnie dozwolone jest tylko jedno użycie każdego adresu gniazda (protokołu / adresu sieciowego / portu). (10048) nie można odczytać ok z serwera ADB * nie udało się uruchomić demona * błąd: nie można połączyć się z demonem

Odkryłem, że istnieje różnica w wersjach ADB używanych w całym systemie. Oto polecenie, którego użyłem, aby je znaleźć:

where /r C:\ adb.exe

Dało to wyniki:

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

Przechodzenie do każdego katalogu i uruchamianie:

adb.exe version

Pozwolił mi zobaczyć, że Expo działa w wersji ADB:

Android Debug Bridge version 1.0.36
Revision fd9e4d07b0f5-android

Podczas gdy Genymotion używający niestandardowego zestawu SDK miał wersję (c: \ Users \ kyle \ AppData \ Local \ Android \ Sdk \ platform-tools \ adb.exe):

Android Debug Bridge version 1.0.39
Revision 3db08f2c6889-android

W ramach testu wziąłem pliki adb (adb.exe, AdbWinApi.dll, AdbWinUsbApi.dll) z

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

i umieścił je w folderze kopii zapasowych. Następnie przeniosłem pliki adb znajdujące się pod adresem

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

do tej samej lokalizacji. Zabiłem adb z:

adb kill-server

co spowodowało automatyczne ponowne uruchomienie serwera adb z powodu już uruchomionego mojego urządzenia Genymotion. Nacisnąłem przycisk „Uruchom ponownie” wewnątrz Expo XDE i natychmiast zaczęło działać. Oto dziennik, w którym nacisnąłem przycisk restartu o 1: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).

Wniosek : Genymotion i Expo może wymagać użycia tej samej wersji adb, aby Expo mogło poprawnie komunikować się z symulowanym urządzeniem. Wskazanie Genymotion na lokalizację Android SDK, a także zapewnienie, że Expo XDE ma tę samą wersję, umożliwi poprawną komunikację między urządzeniami. Przeniosłem wersję Expo XDE do lokalizacji SDK, ale być może będziesz mógł przejść w drugą stronę (weź pliki SDK ADB i umieść je w lokalizacji zasobów Expo XDE).

PS Przeszedłem przez wszystkie posty związane z tym problemem. Abyście wiedzieli, mój menedżer zadań pokazuje trzy uruchomione instancje adb.exe. Jeśli zabijesz któregoś z nich, po prostu wrócą.

Mam nadzieję, że to pomoże / na zdrowie

Kyle S.
źródło
1
To rozwiązało mój pierwszy problem po kilku godzinach (dzięki kolego). Następnym problemem było to, że emulowane urządzenie nie było autoryzowane (urządzenia adb), co zajęło mi mniej czasu na rozwiązanie.
Jonathan
8

Wydaje się, że demon ADB na urządzeniu (adbd) nie zgadza się z procesem serwera ADB na twoim komputerze-hoście, co do wersji protokołu, na którym rozmawiają. Którą wersję zestawu SDK używasz i jaka jest wersja systemu operacyjnego na debugowanym urządzeniu?

To, co może być konieczne, to obniżyć wersję narzędzi SDK, aby demon ADB i proces były zgodne. Myślałem, że proces serwera jest całkowicie kompatybilny wstecz, ale może to być jeden z tych narożnych przypadków, w których tak nie jest. Google nie reklamuje faktu, że można pobrać ich stare pakiety narzędzi SDK, ale można je znaleźć, przeglądając obszar archiwów pod adresem http://developer.android.com .

Eric Cloninger
źródło
1
Do której wersji poleciłbyś zmianę?
Arunabh Das
Z jakiego urządzenia korzystasz i jaka wersja systemu operacyjnego jest na nim uruchomiona? Naprawdę nie uważam, że powinno być konieczne obniżenie wersji, ponieważ generalnie nie jest to konieczne, ale jak powiedziałem, może to być przypadek narożny. SDK r10 został właśnie wydany w tym tygodniu, a r9 zaledwie miesiąc temu. Jeśli problem pojawił się niedawno, to r7 powinien zapewnić stabilną podstawę do lat ubiegłego roku. Te wcześniejsze wersje można znaleźć pod adresem developer.android.com/sdk/tools-notes.html . Powodzenia
Eric Cloninger
Wersja systemu operacyjnego na urządzeniu = 2.2 i SDK = 10
Arunabh Das
To nie jest niezgodność wersji między adbdi, adb serverale raczej między adb serveri adb client(obie działają na PC)
Alex P.
7

Mam szybki sposób, aby to zrobić

sudo rm /usr/bin/adb

Następnie

sudo ln -s /home/{{username}}/Android/Sdk/platform-tools/adb  /usr/bin/adb

Najszybszy sposób rozwiązania problemu

Ian Samz
źródło
7
Nie mogę uwierzyć, że miałem ten sam problem i ponownie przyszedłem, aby uzyskać odpowiedź od siebie
Ian Samz
To naprawdę najszybszy sposób! Dzięki!
Abbas
5

Po prostu całkowicie zamknąłem aplikację do synchronizacji htc i spróbowałem ponownie. Działało tak, jak powinno.

Harsha Kanth
źródło
5

Na tym uderzyłem głową o ścianę. Zaczęło się to dziać, gdy zainstalowałem najnowszą wersję HTC sync (3.0.5579). Z jakiegoś powodu adb.exe pojawiał się wiele razy w menedżerze zadań i otrzymywałem, że serwer adb jest nieaktualny, zabijając błędy wiele razy. Znalazłem wersję adb.exe w katalogu synchronizacji HTC i katalogu narzędzi platformy Android SDK. Miałem skonfigurowaną ścieżkę poprawnie wskazującą na katalog Android SDK i nie widziałem ścieżki HTC Sync (może czegoś mi brakowało, ale nie sądzę). W każdym razie, aby rozwiązać problem, po prostu zmieniłem nazwę pliku adb.exe w katalogu HTC Sync i wszystko znów działało. Może to nie jest właściwy sposób rozwiązania tego problemu, ale dla mnie zadziałał.

Skylert
źródło
5

Pomogło mi: zatrzymaj HTC Sync (w zasobniku systemowym) i zmień nazwę HTC adb.exe (C: \ Program Files (x86) \ HTC \ HTC Sync 3.0 \ adb.exe).

Maksyma
źródło
5

System: Windows 7, Android Studio.

Ten błąd wystąpił, gdy uruchomiłem adb devicesz wiersza poleceń systemu Windows.

Główną przyczyną było to, że adb, który uruchamiałem z wiersza poleceń, nie był tym samym adb działającym z Android Studio.

Rozwiązanie:

  1. Najpierw zabij wszystkie uruchomione procesy adb na komputerze.

    taskkill /F /IM adb.exe

  2. Uruchom swoją aplikację z Android Studio.

  3. Zlokalizuj dokładną lokalizację pliku adb.exe w Menedżerze zadań Windows LUB wykonując poniższe polecenie

    wmic process where "name='adb.exe'" get ProcessID, ExecutablePath

  4. W wierszu polecenia systemu Windows uruchom, where adbaby zlokalizować adb uruchamiany z wiersza polecenia. Ta ścieżka różniłaby się od tej w kroku 3 powyżej.

  5. Edytuj zmienną systemową Windows PATH. Usuń z niego ścieżkę podstawową znalezioną w kroku 4.

  6. Po edycji PATH możesz zobaczyć bieżącą zawartość tej zmiennej, wpisując poniższe polecenie w NOWYM wierszu polecenia (nie używaj starego znaku zachęty).

    echo %PATH%

Teraz uruchom adb z wiersza poleceń. NIE powinien pokazywać żadnego „błędu nieaktualności serwera”!

user13107
źródło
5

Doświadczyłem podobnego problemu, gdy moje próby użycia, adbtakie jak adb logcatpod warunkiem tego wyjścia błędu:

adb server version (40) doesn't match this client (36); killing...

To rozwiązanie działało u mnie w 2018 roku na Ubuntu 18.04 z Android Studio 3.2.1 przy użyciu terminala.

Polecenia są następujące:

adb kill-server sudo cp ~/Android/Sdk/platform-tools/adb /usr/bin/adb sudo chmod +x /usr/bin/adb adb start-server

Konieczne może być dostosowanie cpargumentów polecenia na podstawie ścieżki Android/w systemie.

Uznanie drugiej generacji dla mojego źródła: https://stackoverflow.com/a/40991118/7015599

Sarkis
źródło
1
Udało mi się zrobić coś podobnego bez zastępowania / usr / bin / adb. Ustawiłem alias w bash_aliases -> alias adb = '~ / Android / Sdk / platform-tools / adb'. Źródło .bashrc i gotowe.
James
4

Spróbuj tego:

  1. Zamknij aplikację Eclipse.

  2. adb kill-server

  3. Uruchom ponownie Eclipse.

dcanh121
źródło
4

Najpierw zamknij Wszystkie rzeczy, które używają ADB. (Android Studio, Eclipse, Emulator (również Bluestack)), a następnie zrób

adb kill-server
adb start-server

W moim przypadku właśnie dostałem aktualizację Studio.

jeet.chanchawat
źródło
2

OK, istnieje inna instancja pliku adb.exe dystrybuowana z programem „Lenovo Photo Companion”. Mój przyjaciel ma notebook Lenovo Yoga i zainstalował to oprogramowanie, które zawierało inny plik adb.exe

Odinstalowanie go rozwiązało problem.

Wolkenjaeger
źródło
2

System operacyjny: Ubuntu

Działa więcej niż 1 adb. Sprawdź aktualny adb:

    which adb
    Expected Output : ANDROID_SDK/platform-tools/adb

Zwykle wynikiem będzie:

    /usr/bin/adb

Usuń starszą wersję przez:

    cd /urs/bin
    sudo rm adb
Zed
źródło
1

Czy próbowałeś użyć SDK w wersji 8. Ponieważ urządzenie jest w wersji 2.2, a Twój SDK ma stan 10, może wystąpić konflikt.

Powodzenia w obniżaniu kwalifikacji !! Mam nadzieję, że to rozwiązuje.

amiekuser
źródło
1

Jeśli urządzenie, z którym próbujesz wejść w interakcję, to fizyczny telefon podłączony przez USB, możesz go odłączyć i podłączyć z powrotem i powinno działać. Myślę, że czasami po prostu traci synchronizację.

Nate Radebaugh
źródło
1

Miałem ten problem na jednej z moich maszyn programistycznych (wszystkie działają pod Windows 7 x64), podczas gdy adb wszystkich innych maszyn działa normalnie. Powodem, dla którego napotkałem ten problem, jest to, że mam starą wersję adb.exe znajdującą się w % android-sdk% \ tools, podczas gdy nowsze zestawy SDK dla Androida mają adb.exe w % android-sdk% \ platform-tools

usuń starszą wersję adb.exe z% android-sdk% \ tools i dodaj% android-sdk% \ platform-tools do% PATH% rozwiązuje ten problem

lub bardziej ogólnie, znajdź wszystkie nieaktualne pliki wykonywalne adb na swojej ścieżce, po prostu użyj najnowszego dostarczonego z Android SDK

Yenchi
źródło
1

Przejrzałem wszystkie odpowiedzi na SO i to nie zadziałało. Kiedy zabiłem proces adb.exe z Menedżera zadań, ciągle go otwierał, a powodem było to, że Droid Explorer działał w tle .

Zabicie procesu DE za pomocą Menedżera zadań, a następnie zabicie adb.exe (i ponowne uruchomienie go z konsoli przez „adb start-server” działało dla mnie).

Może to być przydatne dla wielu osób, które zrootowały swoje urządzenia .

syntagma
źródło
To było dla mnie rozwiązanie. Upewnij się, że End process treew Menedżerze zadań dla usługi Droid Explorer.
Jason
1

Niestety nie mam jeszcze wystarczającej reputacji, aby komentować. Ale odpowiedź oznaczona jako odpowiedź skierowała mnie w dobrym kierunku.

Nie widziałem na swojej ścieżce nic związanego z HTC Sync Manager, chociaż miałem go zainstalowanego. W tej chwili nie pracuję z moim urządzeniem HTC i mam tylko menedżera synchronizacji, który pomaga w rozwiązywaniu problemów ze sterownikami. Po odinstalowaniu menedżera synchronizacji HTC ten problem zniknął.

Mam nadzieję, że to pomoże komuś innemu.

Ben Williamson
źródło
1

W moim przypadku problem został spowodowany przez Virtuous Ten Studio, który ma w External/ADBkatalogu adb.exe .

Idź tam i biegnij, .\adb.exe kill-servera będziesz dobry.

Tomáš Zato - Przywróć Monikę
źródło
1

W moim przypadku było to spowodowane uruchomieniem Visual Studio z projektem Android Xamarin na tej samej maszynie, co Android Studio - każde IDE miało uruchomioną inną wersję serwera adb. Zamknąłem program Visual Studio i błąd zniknął.

dodgy_coder
źródło
0

Jak wspomniano powyżej, problem jest spowodowany konfliktową wersją pliku adb.exe dostarczaną z HTC Sync. Usunięcie go z PATH nie pomoże, ponieważ htcUPCTLoader.exe, który stale działa w tle, nadal będzie ponownie uruchamiał niewłaściwą wersję ADB.

Jednym z rozwiązań byłoby całkowite usunięcie adb.exe z folderu HTC Sync, jednak zepsułoby to HTC Sync.

Właśnie zakodowałem proste narzędzie, które zastępuje stary adb.exe kodem pośredniczącym, który wywołuje najnowszy adb.exe z katalogu SDK, eliminując konflikty (np. Wersja 1.0.25 dostarczana z HTC Sync i 1.0.29 z Android SDK) .

Narzędzie ADB Fixer

Narzędzie można pobrać ze strony http://visualgdb.com/adbfix

Ivan Shcherbakov
źródło
0

Miałem też ten problem dzisiaj, okazuje się, że wyłączyłem sterowniki sieciowe, ponieważ miałem problemy z WIFI / LAN. ponowne włączenie rozwiązało problem

bvanvelsen
źródło
0

poprawiono instalowanie aktualizacji SDK (w tym narzędzi platformy)!

hmac
źródło