Android Studio - проблемы с Lollipop, ADB и Genymotion: устройства не появятся. "Сервер adb устарел, убивая..."


Обновление (11/10/14): Genymotion выпустила версию 2.3.1, которая устраняет эту проблему. https://cloud.genymotion.com/page/changelog/#231


Обновление (10/21/14): Genymotion ответила на мою электронную почту поддержки и указала, что решение, рекомендованное @plackemacher ниже, является предлагаемым исправлением на данный момент. Они знают об этой проблеме.


С момента обновления до Lollipop у меня возникают проблемы с adb при использовании эмулятора Genymotion. Устройства не отображаются в Android Studio, и я также получил следующую ошибку при попытке запустить adb devices:

$ adb devices

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

Я не уверен, что это из-за обновления Lollipop или совпадения.

Изменить/обновить:

В комментарии Пер Криса Саттона я исследовал, выполнялись ли несколько процессов adb (ps aux | grep adb), и это похоже на конфликт Genymotion (?). Он включает в себя собственную версию adb.

greg 72550 0,0 0,0 611164 1508?? S 4:14 PM
0: 00,02 /Applications/Genymotion.app/Contents/MacOS/player.app/Contents/MacOS/tools/adb -s 192.168.56.102:5555 shell

greg 72523 0,0 0,0 635956 2296?? S 4:14 PM 0: 00.02 adb -P 5037 сервер fork-server

Ответ 1

Попробуйте выполнить следующее:

killall -9 adb

Это должно удалить все запущенные трассировки демона

Изменить: лучшее решение ниже

Эта проблема может быть adb несовместимой с новейшей версией платформы SDK. Лучшим решением для этой проблемы с Genymotion является установка Android SDK в Genymotion в ваше местоположение. Это можно найти на странице настроек.

Genymotion Settings window

Ответ 2

В моем случае проблема заключалась в том, что я установил инструменты adb и fastboot с помощью этой команды

sudo apt-get install android-tools-adb android-tools-fastboot

Из репозитория, поэтому в этом случае эти исполняемые файлы отправляются в каталог /usr/bin/, чтобы вы могли использовать его в общесистемной переменной ($PATH).

Кроме того, я запускаю андроид-студию с настройкой genymotion, как в ответе выше.

Поэтому, когда я пытался получить adb (adb shell в моем случае), он пытался запустить другую копию процесса (сервера) adb и связать с портом по умолчанию, поэтому проблема была здесь.

Я только что удалил android-tools-adb android-tools-fastboot и добавил путь к моей Android SDK к переменной $PATH

Ответ 3

Использование genymotion на ubuntu.

Мое решение состояло в том, чтобы на самом деле использовать двоичный код вместо ADB PATH'd.

~/genymotion/tools/abd reboot

Также у меня есть пользовательский SDK в genymotion.

Ответ 4

Что сработало для меня наконец, и я думаю, что это бесплатно, так это то, что вы просто запускаете команды adb непосредственно из папки platform-tools. Например, используйте ./adb devices для просмотра устройств. Я также поменял genymotion SDK на SDK по умолчанию для Android, но я не уверен, что это не сработает без этого.

Ответ 5

Я думаю, если вы хотите использовать adb, то лучше использовать эмулятор студии android и проверить, что вы хотите, после того как вы можете использовать Genymotion

Ответ 6

Ни один из решений не помог Ubuntu. Просто перетащите файл .apk на экран устройства Genymotion и приложение будет установлено.

Ubuntu 15.04, Genymotion 2.5.2

Ответ 7

Добавьте Android SDK в переменную $PATH.

Ответ 8

Я только что использовал. /adb reboot на Android/Sdk/platform-tools/

Ответ 9

Принятый ответ не сработал у меня, хотя идея была сделана, только с другой командой:

pkill adb

Я запускаю ubuntu MATE 1.8.2 и Genymotion 2.6.