React-Native, Android, Genymotion: сервер ADB не 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
До сих пор я не нашел решения для запуска моего приложения на эмуляторе. Кто-нибудь сталкивался с той же проблемой?
Спасибо,
Пол
Ответы
Ответ 1
После дополнительных исследований я понял, что Genymotion по умолчанию использует собственный adb.
![введите описание изображения здесь]()
Я переключился на свой главный адд (тот же, что и у реагирования), и решил проблему. Я предполагаю, что, поскольку Genymotion adb был запущен, я получил сообщение об ошибке Address already in use
.
Ответ 2
Я использую genymotion, но одно решение Paul не исправило ошибку (для Mac).
Мне пришлось:
Обновите Android SDK до последней версии (24.4.1) с помощью менеджера SDK
Введите 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
![введите описание изображения здесь]()
Ответ 3
Система: Windows 10
Моя проблема: Настройка Genymotion для указания на пользовательский SDK не повлияла. Я все еще получил:
Не удалось запустить проект на Android: не удалось установить smartsocket слушатель: не может привязываться к 127.0.0.1:5037: только одно использование каждого сокета адрес (протокол/сетевой адрес/порт), как правило, разрешен. (10048) не удалось прочитать ok с сервера 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
Позвольте мне видеть, что на Expo была запущена версия 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 уже запущено. Я нажал кнопку "Перезапустить" внутри Экспо XDE и сразу же начал работать. Вот журнал, в который я нажал кнопку перезапуска в 1:13:04 AM:
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, но вы можете пойти другим путем (взять файлы ADB sdk и поместить их в место размещения Expo XDE).
P.S. Я прошел через сообщения stackoverflow, связанные с этой проблемой. Просто вы, ребята, знаете, что мой диспетчер задач показывает три примера работы adb.exe. Если вы убьете любого из них, они просто вернутся.
Надеюсь, что это поможет/ура.
Ответ 4
Возможно, ваши версии ADB не соответствуют
Проверка:
adb version
Тогда:
cd /Path/to/Android/Sdk/platform-tools && ./adb version
Если эти два значения различаются, у вас есть ошибка, просто удалите adb из sys и скопируйте тот, который находится в инструментах платформы, в /usr/bin/
Ответ 5
Версия ADB в вашей системе отличается от версии ADB на Android-инструменты платформы SDK.
Ниже предложено работать для меня для операционной системы 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]
sudo cp/root/Android/Sdk/platform-tools/adb/usr/bin/adb
Затем запустите проект с помощью этой команды
react-native run-android
Ответ 6
У меня было то же самое, когда я пытался работать с пользовательским интерфейсом expo.
То же самое, что описано в ответах, но приложение не было запущено.
Когда один раз попробовал запустить exp android
из командной строки (в папке проекта), приложение успешно запущено, а в следующий раз запускается из Экспо-интерфейса Expo.
Ответ 7
У меня была аналогичная проблема.
Во-первых, я удалил приложение.
Затем я указал GenyMotion на android sdk из Android Studio
Затем я запустил "adb kill-server" в терминал.
Наконец, я снова запустил "run-and-and-and-run-action" и получил успех сборки.
Ответ 8
Шаги помогли мне:
$ adb kill-server
$ adb start-server
$ cd android
$./gradlew clean
$ cd..
$act-native run-android
Ответ 9
Если вы хотите сохранить свою систему в чистоте, вы также можете использовать 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)
Ответ 10
1. Использовать пользовательский путь SDK в Genymotion. (Предположим, что это не сработает, попробуйте выполнить второй)
2. Используйте вручную эту команду для выполнения (SDK PATH/adb she
Я начну -n/Имя пакета /MainActivity).
C:\Users\AppData\Local\Android\Sdk/platform-tools/adb she
я начну -n com.example/com.example.ManiActivity
И попробуйте запустить приложение, используя реагирующий -n ative run-android.