версия сервера adb не соответствует этому клиенту

Всякий раз, когда я пытаюсь запустить adb devices:

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

В нем говорится, что демон не запущен и перезапускает демона.

Затем, если я снова запустил adb-устройства, он делает то же самое -

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

Затем, если я запустил его снова, он снова сделает то же самое -

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

Пожалуйста помоги!!

Кроме того, мой DDMS продолжает давать мне следующее сообщение:

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

Вот журналы с момента перезагрузки 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 [email protected]}
              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 [email protected][email protected]

Ответ 1

Я удалил Dell PC Suite и HTC Sync с моего компьютера, и эта проблема исчезла.

РЕДАКТИРОВАТЬ: Чтобы немного рассказать о причине этой проблемы: HTC sync поставляется с собственным сервером ADB. И он обновляет вашу переменную среды PATH, указывая на ее версию сервера. Отредактируйте переменную PATH и удалите ссылку на каталоги HTC Sync. Теперь вы снова используете Google ADB.

Ответ 2

Вы используете Genymotion для виртуального устройства?

если да, эта ошибка, вероятно, возникла из-за того, что ADB из Genymotion столкнулся с вашим ADB с Android SDK (используя тот же номер порта), чтобы исправить это просто перейдите в settings => выберите вкладку ADB => щелкните по опции Use custom Android SDK Tools и установить папке SDK

enter image description here

после того, как вы настроите это, попробуйте перезапустить adb, перейдя в папку platform-tools которые adb поместил и выполните adb команду:

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

* советы: вы можете закрыть процесс Genymotion перед запуском команды выше

Надеюсь, это поможет.

Ответ 3

Я считаю, что мне иногда нужно явно убивать и перезапускать сервер вручную:

adb kill-server
adb start-server

Этот шок обычно достаточно, чтобы снова вернуть его на ноги и предотвратить повторные сообщения adb server is out of date. killing....

Ответ 4

Убедитесь, что другие процессы adb не выполняются

В системе может быть несколько процессов adb. Инструменты, такие как Android Reverse Tether, могут использовать собственную версию инструмента adb, поэтому версия в памяти может конфликтовать с версией, запущенной из команды line (через переменную пути).

Окна

В Windows нажмите CTL + Shift + ESC для доступа к диспетчеру задач, выполните сортировку в столбце Имя изображения, затем удалите все экземпляры adb.exe, щелкнув правой кнопкой мыши, и выбрав Окончательный процесс. Обратите внимание, что существует несколько экземпляров adb.exe ниже:

Multiple adb.exe instances - how to kill

Linux (Android)

В среде Linux просто используйте команду kill -9. Что-то вроде этого работало на Android-устройстве под управлением adb (используйте ps вывод, поиск с использованием grep для процесса, начинающегося с adb, получить идентификатор процесса из процесса (t23) и отправить его ID команде kill -9):

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

Затем перезапустите adb

Как только процессы adb - и, следовательно, конфликты - будут устранены, повторите запуск adb из командной строки еще раз:

adb start-server

Ответ 5

В моей машине (Ubuntu 14.04 и Genymotion 2.5.2) источником проблемы было то, что у меня было 2 adb файла разных версий.

(Раньше, сужая этот источник проблемы, у меня уже были настройки Genymotion > "Использовать пользовательские инструменты Android SDK", ссылаясь на мой компьютер, установленный каталогом Android SDK, как советовал Aditya Kresna Permana. Я также пытался убить и запустить сервер adb и несколько других решений со всего Интернета).

Затем увидел, что запуск adb version из моего установочного каталога Android SDK "~/Android/Sdk/platform-tools" - "Android Debug Bridge версии 1.0.32"

Но, команда adb version из созданного каталога "/usr/bin" - "Android Debug Bridge версии 1.0.31"

Итак, просто после этого - http://bernaerts.dyndns.org/linux/74-ubuntu/328-ubuntu-trusty-android-adb-fastboot-qtadb, чтобы обновить adb в "/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

И теперь работает adb devices работает отлично, как ожидалось.

И он также решил связанную проблему, что до того, как приложение PhoneGap (Cordova) не интегрировалось с виртуальным устройством Genymotion. Теперь, очевидно, эта проблема также решена.

Ответ 6

Я только что вышел из HTC Sync, попробовал еще раз, и он сработал. Обратите внимание: телефон поменялся на черный (заблокирован), я просто включил его, и мое приложение было запущено.:)

Ответ 7

Это вызвано тем, что вы используете adb, отличный от того, который включен в SDK. Если на linux проверьте, где находится двоичный файл adb

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

Если вы не указали на ANDROID_SDK/platform-tools/adb, тогда вы используете некоторую старую версию adb, установленную в другом месте на машине.

Ничего плохого в работе с adb, отличным от того, который предоставляется с SDK, но недостатком является то, что он не обновляется автоматически при обновлении SDK android и почему вы используете эту устаревшую версию.

Более легкое исправление и избежать этой проблемы в будущем переименовать старый (вводящий в заблуждение) двоичный файл adb на что-то еще.

Следуйте инструкциям по устранению этой проблемы.

$ 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

Ответ 8

Система: Windows 10

Моя проблема: Установка Genymotion для указания на пользовательский SDK не повлияла. Я все еще получил:

Не удалось запустить проект на Android: не удалось установить smartsocket слушатель: не может привязываться к 127.0.0.1:5037: только одно использование каждого сокета адрес (протокол/сетевой адрес/порт), как правило, разрешен. (10048) не удалось прочитать ok с сервера ADB * не удалось запустить daemon * error: невозможно подключиться к демону

Что я обнаружил, была разница в версиях АБР, используемых во всей системе. Вот команда, которую я использовал для их поиска:

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

Позвольте мне видеть, что на Expo была запущена версия ADB:

Android Debug Bridge version 1.0.36
Revision fd9e4d07b0f5-android

В то время как в Genymotion с использованием пользовательского SDK была версия (c:\Users\kyle\AppData\Local\Android\Sdk\platform-tools\adb.exe):

Android Debug Bridge version 1.0.39
Revision 3db08f2c6889-android

В качестве теста я взял файлы adb (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 с помощью:

adb kill-server

что вызвало перезагрузку сервера adb автоматически из-за того, что мое устройство Genymotion уже запущено. Я нажал кнопку "Перезапустить" внутри Экспо 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, чтобы Expo могла правильно общаться с имитируемым устройством. Указание Genymotion на местоположение вашего Android-SDK, а также обеспечение Expo XDE имеет ту же самую версию, которая позволит правильно установить связь между устройствами. Я переместил версию Expo XDE в местоположение SDK, но вы могли бы пойти другим путем (взять файлы ADB sdk и поместить их в место размещения Expo XDE).

P.S. Я прошел через сообщения stackoverflow, связанные с этой проблемой. Просто вы, ребята, знаете, что мой диспетчер задач показывает три примера работы adb.exe. Если вы убьете любого из них, они просто вернутся.

Надеюсь, что это поможет/ура.

Ответ 9

Казалось бы, демон ADB на устройстве (adbd) не согласен с процессом сервера ADB на вашем хост-компьютере в отношении той версии протокола, о которой они говорят. Какую версию SDK вы используете и какова версия ОС на устройстве, которое вы отлаживаете?

Что вам может потребоваться, это на самом деле понизить версию инструментов SDK, чтобы демон и процесс ADB были согласованы. Я думал, что серверный процесс полностью совместим с обратной связью, но это может быть один из тех угловых случаев, когда он этого не делает. Google не рекламирует тот факт, что вы можете получить свои старые пакеты инструментов SDK, но их можно найти, просмотрев область архивов в http://developer.android.com.

Ответ 10

Я просто полностью закрыл приложение htc sync и снова попробовал. Он работал так, как предполагалось.

Ответ 11

Я бил головой о стену на этом. Это началось, когда я установил последнюю версию HTC sync (3.0.5579). По какой-то причине adb.exe показывался несколько раз в диспетчере задач, и я получал, что сервер adb устарел, убивая ошибки несколько раз. Я нашел версию adb.exe в каталоге синхронизации HTC и в каталоге инструментов Android SDK. Я правильно установил путь к каталогу Android SDK и не видел путь HTC Sync (возможно, я что-то упустил, но я так не думаю). В любом случае, чтобы исправить проблему, я просто переименовал файл adb.exe в каталог HTC Sync, и все снова работало. Возможно, это неправильный способ справиться с этим исправлением, но это сработало для меня.

Ответ 12

Помог мне: остановите HTC Sync (в системном трее) и переименуйте HTC adb.exe(C:\Program Files (x86)\HTC\HTC Sync 3.0\adb.exe).

Ответ 13

Сначала закройте все, что использует ADB. (Android Studio, Eclipse, эмулятор (Bluestack)) а затем do

adb kill-server
adb start-server

В моем случае я только что получил обновление Studio.

Ответ 14

Система: Windows 7, Android Studio.

Эта ошибка возникла, когда я запустил adb devices из командной строки Windows.

Основная причина заключалась в том, что adb, который я запускал из командной строки, был не тем же adb, который запускался из Android Studio.

Решение:

  1. Сначала убейте все запущенные процессы adb на машине.

    taskkill/F/IM adb.exe

  2. Запустите приложение из Android Studio.

  3. Найдите точное местоположение файла adb.exe либо из диспетчера задач Windows, либо, выполнив приведенную ниже команду

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

  4. В командной строке Windows запустите приложение where adb чтобы найти adb, который запускается из командной строки. Этот путь будет отличаться от указанного в шаге 3 выше.

  5. Изменить системную переменную Windows PATH. Удалите базовый путь, найденный на шаге 4.

  6. После редактирования PATH вы можете увидеть текущее содержимое этой переменной, набрав команду ниже в командной строке NEW (не используйте старую подсказку).

    echo %PATH%

Теперь запустите adb из командной строки. Он НЕ должен показывать "ошибку устаревания сервера"!

Ответ 15

Я столкнулся с подобной проблемой, когда мои попытки использовать adb такие как adb logcat этой ошибки:

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

Это решение работало для меня в 2018 году на Ubuntu 18.04 из Android Studio 3.2.1 с использованием терминала.

Команды следующие:

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

Возможно, вам придется настроить аргументы команды cp зависимости от пути к Android/ в вашей системе.

2-го поколения слава моему источнику: fooobar.com/questions/91932/...

Ответ 16

Попробуйте следующее:

  • Закройте приложение Eclipse.

  • adb kill-server

  • Перезапустить Eclipse.

Ответ 17

Хорошо, есть еще один экземпляр adb.exe, распространяемый с помощью "Lenovo Photo Companion". Мой друг имеет ноутбук Lenovo Yoga и установил это программное обеспечение, которое включало еще один adb.exe

Деинсталляция решения проблемы.

Ответ 18

ОС: Ubuntu

Выполнено более 1 adb. Проверьте текущий adb:

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

Обычно результат будет:

    /usr/bin/adb

Удалите эту старую версию:

    cd /urs/bin
    sudo rm adb

Ответ 19

Вы пытались использовать SDK версии 8. Поскольку устройство находится в 2.2, а ваш SDK равен 10, конфликт может быть.

Желаем удачи! Надеюсь, что это решает.

Ответ 20

Если устройство, с которым вы пытаетесь взаимодействовать, - это физический телефон, подключенный через USB, вы можете отключить его и подключить обратно, и он должен работать. Я думаю, что иногда он просто выходит из строя.

Ответ 21

У меня была эта проблема на одной из моих машин разработки (все запускают окна 7 x64), в то время как все остальные adb работают нормально. Я столкнулся с этой проблемой: у меня есть старая версия adb.exe, находящаяся в % android-sdk%\tools, в то время как у новых Android SDK есть adb.exe под % Android-SDK%\платформенные инструменты

удалите старый adb.exe из% android-sdk%\tools и добавьте% android-sdk%\platform-tools в% PATH% решает эту проблему

или, в общем, выслеживать любой исполняемый файл adb на вашем пути, устаревший, просто используйте последнюю версию, предоставленную с Android SDK

Ответ 22

Я просмотрел все ответы на SO, и это не сработало для меня. Когда я убил процесс adb.exe из диспетчера задач, он продолжал открывать его, и причина заключалась в том, что Droid Explorer работал в фоновом режиме.

Убийство процесса DE через диспетчер задач, а затем уничтожение adb.exe(и запуск его с консоли через "adb start-server" работал у меня.

Это может быть полезно для многих людей, укоренивших свои устройства.

Ответ 23

К сожалению, у меня недостаточно репутации, чтобы комментировать. Но ответ, отмеченный как ответ, послал меня в правильном направлении.

Я ничего не видел на своем пути, связанном с HTC Sync Manager, хотя я его и установил. На данный момент я не работаю с устройством HTC, и только диспетчер синхронизации установлен, чтобы помочь с проблемами с драйверами. После удаления менеджера синхронизации HTC эта проблема ушла для меня.

Надеюсь, это поможет кому-то еще.

Ответ 24

В моем случае проблема была вызвана Virtuous Ten Studio, которая имеет adb.exe в каталоге External/ADB.

Перейдите туда и запустите .\adb.exe kill-server, и все будет хорошо.

Ответ 25

В моем случае это было вызвано запуском Visual Studio с проектом Android Xamarin на том же компьютере, что и Android Studio - в каждой IDE была запущена своя версия сервера adb. Я закрыл Visual Studio и ошибка ушла.

Ответ 26

Как упоминалось выше, проблема возникает из-за противоречивой версии adb.exe, поставляемой с HTC Sync. Удаление его из PATH не поможет, поскольку htcUPCTLoader.exe, который постоянно работает в фоновом режиме, все равно перезапустит неправильную версию ADB.

Одним из решений было бы полностью удалить adb.exe из папки HTC Sync, однако это сломало бы HTC Sync.

Я только что закодировал простой инструмент, который заменяет старый adb.exe заглушкой, которая вызывает последний adb.exe из каталога SDK, устраняющий конфликты (например, версия 1.0.25 поставляется с HTC Sync и 1.0.29 с Android SDK).

ADB Fixer tool

Инструмент можно загрузить из http://visualgdb.com/adbfix

Ответ 27

У меня также была эта проблема сегодня, оказывается, я отключил свои сетевые драйверы, потому что у меня были проблемы с WIFI/LAN. повторное включение исправленной проблемы

Ответ 28

установка sdk обновлений (включая инструменты платформы) исправлена для меня!

Ответ 30

Чтобы на самом деле объяснить, что происходит:

Исполняемый файл АБР имеет два компонента

  • сервер, который связывается с устройством
  • и клиент, командная строка, которая связывается с сервером.

Когда вы впервые запускаете ADB, вы можете заметить сообщение типа "запуск сервера ADB". Если после этого вы обновили ADB, более новый исполняемый файл должен был убить устаревший сервер и запустить новый с соответствующей версией.

Это также может произойти, если на вашей машине разработки есть несколько версий ADB (Genymotion, Android SDK, телефонные OEM-приложения для телефонов, различные автономные скрипты).

Это не касается ADB, установленного на вашем телефоне/эмуляторе.

Очевидным (не обязательно простым) решением является обеспечение того, чтобы вы везде использовали ту же версию ADB.