Я работаю с 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
До сих пор я не нашел решения для запуска моего приложения на эмуляторе. Кто-нибудь сталкивался с такой же проблемой?
Спасибо пол
Ответы:
После дополнительных исследований я понял, что Genymotion по умолчанию использует свой собственный adb.
Я переключился на мой основной adb (тот же, который используется response-native), и это решило проблему. Я предполагаю, что поскольку adb Genymotion был запущен первым, я получил
Address already in use
сообщение об ошибке.источник
/Users/$yourName/Library/Android/sdk
. Если вы установили Android, вы должны искать свой путь, учитывая версию Android / вашу платформу.Я использую genymotion, но одно только решение Пола не устранило ошибку (для 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
источник
$ANDROID_HOME/tools
каталог не будет необходим на пути к классам. Вы должны добавить, чтобы подключиться к ADB.система: Windows 10
Моя проблема: установка Genymotion для указания на пользовательский SDK не оказала никакого влияния. Я все еще получил:
Я обнаружил, что есть различия в версиях ADB, используемых во всей системе. Вот команда, которую я использовал, чтобы найти их:
Это дало результаты:
Переход к каждому каталогу и запуск:
Позволил мне увидеть, что Экспо работает под управлением версии АБР:
В то время как Genymotion, использующий пользовательский SDK, имел версию (c: \ Users \ kyle \ AppData \ Local \ Android \ Sdk \ platform-tools \ adb.exe):
В качестве теста я взял файлы adb (adb.exe, AdbWinApi.dll, AdbWinUsbApi.dll) из
и поместил их в резервную папку. Затем я переместил файлы ADB, расположенные в
в том же месте. Я убил АДБ с:
что вызвало автоматический перезапуск сервера adb из-за того, что мое устройство Genymotion уже запущено. Я нажал кнопку «Перезагрузка» внутри Expo XDE, и она сразу же начала работать. Вот журнал, где я нажал кнопку перезагрузки в 1:13:04:
Вывод: Genymotion и Expo, возможно, потребуется использовать одну и ту же версию adb, чтобы Expo могла правильно взаимодействовать с имитируемым устройством. Указание Genymotion на местоположение вашего Android SDK, а также обеспечение того, что Expo XDE имеет ту же версию, обеспечит правильную связь между устройствами. Я переместил версию Expo XDE в папку SDK, но вы могли бы пойти другим путем (взять файлы SDK ADB и поместить их в расположение ресурса Expo XDE).
PS Я прошел через все сообщения от stackoverflow, связанные с этой проблемой. Просто чтобы вы, ребята, знали, что мой диспетчер задач показывает три запущенных экземпляра adb.exe. Если вы убьете любого из них, они просто вернутся.
Надеюсь, что это помогает / ура
источник
Возможно, ваши версии ADB не соответствуют
Проверьте:
Затем:
Если эти два значения различаются, у вас есть ошибка, просто удалите adb из sys и скопируйте тот, который находится в инструментах платформы, в / usr / bin /
источник
Если вы хотите сохранить свою систему в чистоте, вы также можете использовать Genymotion без Android Studio :
adb
. На macOS это нормально/Applications/Genymotion.app/Contents/MacOS/tools/
.export PATH=/Applications/Genymotion.app/Contents/MacOS/tools/:$PATH
в ваш~/.bash_profile
или~/.bash_rc
.(Из https://docs.expo.io/versions/latest/workflow/genymotion )
источник
Версия ADB в вашей системе отличается от версии ADB на Android-инструменты платформы SDK. Ниже предложение работает для меня для операционной системы Linux
Android Debug Bridge версия 1.0.39
Android Debug Bridge версия 1.0.32
[Примечание: приведенная выше команда удаляет существующий adb, затем копирует adb из каталога sdk / platform-tools]
Затем запустите проект с помощью этой команды
источник
У меня было то же самое, когда я пытался бежать из выставочного интерфейса. Делал то же самое, что описано в ответах, но приложение не работало. При попытке запуска
exp android
из командной строки (в папке проекта) приложение было успешно запущено, и в следующий раз запуск из Экспо-интерфейса прошел успешно.источник
У меня была похожая проблема.
Сначала я удалил приложение. Затем я указал GenyMotion на Android SDK, предоставленный Android Studio. Затем я запустил «adb kill-server» в терминал. Наконец, я перезапустил «response-native run-android» и добился успеха в сборке.
источник
Шаги работали для меня:
$ adb kill-server
$ adb start-server
$ cd android
$ ./gradlew clean
$ cd ..
$ response-native run-android
источник
Для Ubuntu
Меня устраивает!!
Android Debug Bridge версия 1.0.39
2 проверьте версию SDK ADB
Android Debug Bridge версия 1.0.32
вот и все! Это будет работать сейчас.
источник
1. Использовать пользовательский путь SDK в Genymotion. (Предположим, что это не сработает, попробуйте выполнить второй)
2. Вручную используйте эту команду для выполнения (SDK PATH / adb, она запустит -n / Имя пакета / MainActivity).
C: \ Users \ AppData \ Local \ Android \ Sdk / platform-tools / adb она запустится -n com.example / com.example.ManiActivity
И попробуйте запустить приложение с помощью response-native run-android.
источник
Это шаги
источник