Не удается подключиться к эмулятору через ADB genymotion

Я пытаюсь подключиться к андроиду, работающему через genymotion. Тем не менее, я продолжаю получать следующее сообщение об ошибке при попытке подключиться через adb:

adb server version (41) doesn't match this client (39); killing...

Я видел, что у многих других есть эта проблема, и я попробовал все, и по какой-то причине я до сих пор не могу это на работу. У меня есть genymotion, использующий Android SDK вместо стандартного genymotion.

Я думаю, что ошибка может быть связана с тем, что у меня есть попытка заставить genymotion работать правильно на некоторых других этапах установки, например, когда я выполняю adb --version, я получаю следующее:

Android Debug Bridge version 1.0.39
Version 1:8.1.0+r23-5~18.04

в эту проблему? Если это имеет значение, я в настоящее время использую Ubuntu 18.04, и мой эмулятор не подключен к Wi-Fi. Спасибо всем, кто ответил заранее.

1
задан 20 May 2019 в 02:31

3 ответа

Это на самом деле решило мою проблему sudo cp ~/Android/Sdk/platform-tools/adb /usr/bin/adb

0
ответ дан 20 May 2019 в 02:31

Я определенно сталкивался с этим сообщением об ошибке при попытке подключиться к виртуальной машине Genymotion с помощью средства ADB платформы Android SDK вместо версии, предоставленной Genymotion; однако я не пытался настроить Genymotion для использования ADB, предоставляемого Android SDK.

Я бы попробовал соединиться с предоставленной Genymotion версией. Похоже, что Genymotion может не соответствовать конфигурации, которую вы установили.

Это проблема, которую я наблюдал:

Genymotion failure to connect with wrong ADB.

Как показано на этом скриншоте. Эта проблема определенно возникает, когда вы пытаетесь подключиться к версии ADB, которая не соответствует версии, используемой Genymotion.

Чтобы подтвердить, какая версия используется Genymotion (то есть, чтобы убедиться, что она соответствует вашим конфигурациям), выполните следующее:

netstat -tlpn | grep -i adb

Это должно сообщить вам идентификатор процесса сервера ADB, который слушает связи. Используя этот идентификатор процесса, мы можем определить, какая версия ADB выполняется с помощью ls -la /proc/ADB_PROCESS_ID/ (очевидно, подставить в числовой идентификатор процесса.)

Например, я вижу, что сервер ADB, работающий на моей стороне, /opt/genymobile/genymotion/tools/adb, как показано ниже:

Example of the aforementioned steps showing which executable ADB server is using

Если Genymotion действительно использует версию ADB, которую вы ожидали использовать, тогда вы можете запустить which adb, а затем readlink "$(which adb)". Если этот результат неожиданный, то вам следует либо убедиться, что каталог с правильным adb появится раньше в вашей переменной среды PATH, либо вы можете попробовать добавить псевдоним для adb, который явно указывает на правильный путь. (Я бы, вероятно, добавил к передней части PATH вместо использования псевдонима, так как другие приложения, которые вы запускаете, с большей вероятностью будут уважать PATH, чем они будут уважать псевдоним.)

Если вы обнаружите, что путь ADB, на который ссылается Genymotion, отличается от пути, на который ссылается ADB, и вы решаете эту проблему, изменив свой PATH, затем вам следует изменить файл .bash_profile в вашем домашнем каталоге, добавив следующую строку ( измените, где необходимо), внизу:

export PATH="/path/to/adb-directory:$PATH"

После этого вам может потребоваться запустить source ~/.bash_profile && hash -r и изменения вступят в силу. После этого, если все работает правильно, при запуске команды which adb, приведенной выше, должен быть показан желаемый путь к ADB.

0
ответ дан 20 May 2019 в 02:31

В genymotion переходят к НастройкамADB и выбирают SDK, который Вы установили.

1
ответ дан 7 December 2019 в 15:03

Другие вопросы по тегам:

Похожие вопросы: