версия сервера adb не соответствует этому клиенту - PullRequest
142 голосов
/ 23 февраля 2011

Всякий раз, когда я пытаюсь запустить 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 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

Ответы [ 36 ]

295 голосов
/ 05 ноября 2014

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

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

enter image description here

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

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

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

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

61 голосов
/ 13 марта 2011

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

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

25 голосов
/ 23 февраля 2011

Мне иногда приходится явно убивать и перезапускать сервер вручную:

adb kill-server
adb start-server

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

20 голосов
/ 31 марта 2015

Убедитесь, что другие процессы adb не запущены

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

Windows

В 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, получите идентификатор процесса из adb процесса (ов) и отправьте егоИдентификатор команды kill -9):

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

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

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

adb start-server
19 голосов
/ 25 июля 2015

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

(Раньше, сужая источник этой проблемы, я уже имелНастройки Genymotion> «Использовать пользовательские инструменты Android SDK», относящиеся к установленному на моей машине каталогу Android SDK по совету Адитьи Кресны Пермана. Я также пытался убить и запустить сервер adb и несколько других решений со всего Интернета).

Затем увидел, что запуск adb version из моего каталога установки Android SDK «~ / Android / Sdk / platform-tools» произвел - «Android Debug Bridge version 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.Теперь очевидно, что эта проблема также решена.

15 голосов
/ 02 июля 2011

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

12 голосов
/ 09 марта 2017

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

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

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

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

Легче исправить и избежать этой проблемы в будущем, переименуйте старый (вводящий в заблуждение) двоичный файл 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
11 голосов
/ 02 августа 2017

Система: Windows 10

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

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

Я обнаружил, что существует разница в версиях ADB, используемых во всей системе.Вот команда, которую я использовал, чтобы найти их:

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

Разрешеноя вижу, что в Экспо была запущена версия 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 уже запущено.Я нажал кнопку «Перезагрузить» внутри Expo XDE, и она сразу же начала работать.Вот журнал, где я нажимаю кнопку перезапуска в 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).

Заключение : Genymotion и Expo, возможно, потребуется использовать одну и ту же версию adb, чтобы Expoможет правильно общаться с моделируемым устройством.Указание Genymotion на местоположение вашего Android SDK, а также обеспечение того, что Expo XDE имеет ту же версию, обеспечит правильную связь между устройствами.Я переместил версию Expo XDE в папку SDK, но вы можете пойти другим путем (возьмите файлы SDK ADB и поместите их в папку ресурса Expo XDE).

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

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

8 голосов
/ 23 февраля 2011

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

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

5 голосов
/ 27 октября 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...