Как прикрепить обратно эмулятор Android к ADB?
-
19-09-2019 - |
Вопрос
После того, как я запускаю эмулятор, нажав «Отладка» в Eclipse, через определенное время он отключается от ADB, но эмулятор остается открытым.Он отзывчивый, я могу перемещаться по нему и запускать приложения.
Как я могу снова подключить эмулятор к ADB, чтобы иметь возможность отлаживать его из Eclipse?
(текущий обходной путь — завершить работу эмулятора, закрыть Eclipse и перезапустить их оба, что занимает 10 минут, поскольку вы знаете, что эмулятору нужно время для запуска)
РЕДАКТИРОВАТЬ 1
Посмотрите на это изображение:
РЕДАКТИРОВАТЬ 2
После того, как я убью и перезапущу сервер.Один процесс эмулятора отображается на вкладке «Устройства» в Eclipse.Но это невозможно расширить, и я не вижу подпроцессов.
Я уже не могу запустить отладку, как говорится:Отладка уже запущена.(Как остановить отладку?)
Если мне удалось начать отладку другого проекта, в эмуляторе он зависает и сообщает мне:Ожидание подключения отладчика.Ничего не произошло.
Решение
Как вы сказали, проблема не в том, что Eclipse теряет связь с эмулятором, а в ADB - Мост отладки Android - потеря контакта с ним.Поскольку Eclipse использует ADB для связи с эмулятором, когда ADB не работает, Eclipse ничего не может сделать.
Чтобы исправить это остановить сервер ADB выполнив следующую команду:
adb kill-server
Затем Eclipse обычно пытается перезапустить ADB, или вы можете перезапустить его самостоятельно, выполнив команду ADB, например:
adb devices
Если вы это сделаете, вы увидите такой вывод:
* daemon not running. starting it now *
* daemon started successfully *
List of devices attached
emulator-5554 device
Вы также можете сделать это с помощью мыши, используя Сбросить adb вариант в Устройства просмотреть в Eclipse.
Также стоит отметить Консоль просмотр имеет два режима, DDMS
и Android
.Обычно ты в Console
режим, но это DDMS
режим, в котором будут отображаться сообщения о состоянии ADB.Выберите режимы, нажав кнопку со значком Монитора или стрелку рядом с ним:
Если ничего не помогает, попробуйте убить процессы adb из ОС.В Windows XP я использую:
TASKKILL /F /IM adb.exe
Другие советы
Есть более простой способ.Из eclipse вы можете сбросить adb из ДДМС панель.Вот короткое видео о том, как это сделать «Сбросить ADB на DDMS»
Вот краткий скриншот того, где вы можете получить эту опцию.
Иногда на моей машине (WinXP) не помогает Kill-сервер.Например, я больше не вижу эмулятор в DDMS-View или вижу его, но на нем не выполняются никакие процессы.
В этих случаях я закрываю эмулятор, затмеваю и вручную уничтожаю процесс adb.exe из списка процессов.
Когда я затем перезапускаю затмение и эмулятор, все снова в порядке.
Теперь мне просто нужно сочетание клавиш для этого :-)
на Mac мне просто пришлось отключить adb из диспетчера активности и вручную снова открыть программу.все время было открыто затмение, и все работало нормально.
Попробуйте использовать adb kill-server и adb start-server.Даже в этом случае возникает та же проблема, убивайте запущенный процесс с точки зрения ddms.Обратитесь по этой ссылке(http://www.jiahaoliuliu.com/2011/02/stopping-android-applications-already.html).Это решило мою проблему.Надеюсь и на тебя.
Я тестирую приложение на эмуляторе Android 4.0 (уровень API 14), и как только я запускаю приложение, эмулятор запускается, и как только он загружается, Eclipse DDMS отключается от эмулятора.
Вот обходной путь, который я использую:Откройте терминал, перейдите к инструментам платформы (C:\android-sdk\platform-tools\ или там, где у вас установлен android-sdk) и запустите adb kill-server
, а затем беги, adb start-server
.Теперь DDMS должен отобразить эмулятор — с точки зрения Java щелкните правой кнопкой мыши приложение -> Запуск от имени -> Приложение Android.
Надеюсь это поможет.
Мой удобный bash-скрипт
#!/bin/bash
./path/to/adb kill-server
./path/to/adb start-server
./path/to/adb devices