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 ответов:
после дополнительных исследований я понял, что Genymotion использует по умолчанию свой собственный adb.
я переключился на свой основной adb (тот же, что используется react-native), и он решил проблему. Я думаю, что, поскольку adb Genymotion был запущен первым, я получил
Address already in use
сообщение об ошибке.
Я использую genymotion, но одно только решение пола не исправило ошибку (для Mac).
Я:
обновление Android SDK до последней версии (24.4.1) через SDK manager
тип
android
в командной строкев диспетчере SDK найдите последние инструменты SDK и установите их.
после установки путь SDK должен обновить новое расположение SDK, например под.
затем обновите $ 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
возможно, ваши версии 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:
- найти копию Genymotion из
adb
. На macOS это обычно/Applications/Genymotion.app/Contents/MacOS/tools/
.- добавьте каталог инструментов Genymotion в свой путь-выполнить / добавить строку
export PATH=/Applications/Genymotion.app/Contents/MacOS/tools/:$PATH
на~/.bash_profile
или~/.bash_rc
.- убедитесь, что вы можете запустить adb с вашего терминала.
(от https://docs.expo.io/versions/latest/workflow/genymotion)
версия adb в вашей системе отличается от версии adb на платформе Android sdk-tools . Ниже предложение работает для меня для операционной системы Linux
- проверьте версию sys adb выполните следующую команду
версия adb
Android Debug Bridge версии 1.0.39
- проверьте версию sdk adb
cd / root / Android / Sdk / platform-tools
./ adb version
Android Debug Bridge версии 1.0.32
- скопировать
rm / usr / bin / adb
[Примечание: приведенная выше команда удаляет существующий adb, а затем копирует adb из каталога sdk / platform-tools ]
судо СР /корень/Андроид/СДК/платформа-инструменты/АБР /usr/Бен/АБР
затем запустите проект с помощью этой команды
реагировать родной run-android