React-Native, Android, Genymotion: ADB server didn't ACK


Я работаю с React-Native, Android и Genymotion на Mac. Когда я бегу react-native run-android Я вам эти строки в конце операции запуска:

...
04:54:40 E/adb: error: could not install *smartsocket* listener: Address already in use
04:54:40 E/adb: ADB server didn't ACK
04:54:40 E/ddms: '/Users/paulbrie/Library/Android/sdk/platform-tools/adb,start-server' failed -- run manually if necessary
04:54:40 E/adb: * failed to start daemon *
04:54:40 E/adb: error: cannot connect to daemon
:app:installDebug FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:installDebug'.
> com.android.builder.testing.api.DeviceException: Timeout getting device list.
...
, adb devices возвращает это:
List of devices attached
192.168.59.101:5555 device

до сих пор я не нашел решение для запуска моего приложения на эмуляторе. Кто-нибудь сталкивался с той же проблемой?

спасибо, Пол

9 141

9 ответов:

после дополнительных исследований я понял, что Genymotion использует по умолчанию свой собственный adb.

enter image description here

я переключился на свой основной adb (тот же, что используется react-native), и он решил проблему. Я думаю, что, поскольку adb Genymotion был запущен первым, я получил Address already in use сообщение об ошибке.

Я использую genymotion, но одно только решение пола не исправило ошибку (для Mac).

Я:

обновление Android SDK до последней версии (24.4.1) через SDK manager

тип android в командной строке

в диспетчере SDK найдите последние инструменты SDK и установите их.

после установки путь SDK должен обновить новое расположение SDK, например под.

enter image description here

затем обновите $ ANDROID_HOME, чтобы использовать новый SDK

export ANDROID_HOME=/usr/local/Cellar/android-sdk/24.4.1_1

export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools

подтвердите, что он был добавлен, просмотрев свой путь с помощью echo $PATH

затем в genymotion сделайте то, что @Paul говорит выше, и укажите genymotion ADB, чтобы использовать тот же sdk

enter image description here

возможно, ваши версии adb не совпадают

проверка:

adb version 

затем:

cd /Path/to/Android/Sdk/platform-tools && ./adb version

Если эти два отличаются у вас есть ошибка здесь, просто удалите adb из sys и скопируйте тот, который находится в platform-tools в /usr/bin/

У меня была аналогичная проблема.

во-первых, я удалил приложение. Затем я указал GenyMotion на Android sdk, предоставленный из Android Studio Затем я запустил "adb kill-server" в терминал. Наконец, я повторно запустил "react-native run-android" и получил успех сборки.

У меня было то же самое, пока я пытался запустить из expo UI. Делали то же самое, как описано в ответах, но приложение не работает. Когда однажды попробовал запустить exp android из командной строки (в папке проекта) приложение успешно запущено, и в следующий раз запуск из Expo UI был успешно выполнен.

шаги работали для меня:

  • $ adb kill-server

  • $ adb start-server

  • $ cd android

  • $ ./ gradlew clean

  • $ cd ..

  • $ react-native run-android

если вы хотите, чтобы ваша система была чистой, вы также можете используйте Genymotion без Android Studio:

  1. найти копию Genymotion из adb. На macOS это обычно /Applications/Genymotion.app/Contents/MacOS/tools/.
  2. добавьте каталог инструментов Genymotion в свой путь-выполнить / добавить строку export PATH=/Applications/Genymotion.app/Contents/MacOS/tools/:$PATH на ~/.bash_profile или ~/.bash_rc.
  3. убедитесь, что вы можете запустить adb с вашего терминала.

(от https://docs.expo.io/versions/latest/workflow/genymotion)

версия adb в вашей системе отличается от версии adb на платформе Android sdk-tools . Ниже предложение работает для меня для операционной системы Linux

  1. проверьте версию sys adb выполните следующую команду

версия adb

Android Debug Bridge версии 1.0.39

  1. проверьте версию sdk adb

cd / root / Android / Sdk / platform-tools

./ adb version

Android Debug Bridge версии 1.0.32

  1. скопировать

rm / usr / bin / adb

[Примечание: приведенная выше команда удаляет существующий adb, а затем копирует adb из каталога sdk / platform-tools ]

судо СР /корень/Андроид/СДК/платформа-инструменты/АБР /usr/Бен/АБР

затем запустите проект с помощью этой команды

реагировать родной run-android