Android Emulator иногда не запускается по сети - PullRequest
3 голосов
/ 04 декабря 2010

Каждые несколько раз, когда я открываю эмулятор, он отображается в автономном режиме, с символом «X» в верхней части экрана вместо символа 3g и отсутствием видимого подключения к сети.

Единственное очевидноеРазница в журналах, которые я нашел, такова:

Network works:
12-03 11:24:48.732 D/qemud   (   37): client_fd_receive: attempting registration for service 'gsm'
12-03 11:24:48.732 D/qemud   (   37): client_fd_receive:    -> received channel id 2
12-03 11:24:48.742 D/qemud   (   37): client_registration: registration succeeded for client 2

Network fails:
12-03 03:02:11.688 D/qemud   (   37): client_fd_receive: attempting registration for service 'gsm'
12-03 03:02:11.688 D/qemud   (   37): client_fd_receive:    -> received channel id 2

У кого-нибудь есть идеи, почему регистрация не будет успешной от одного запуска к другому?

1 Ответ

1 голос
/ 04 января 2011

Так как это для CI, временный обходной путь был необходим.Наша сборка сначала запускает тест gating, чтобы убедиться, что сеть работает без проблем.Каждый раз, когда начинаются наши тесты, эмулятор создается и тестируется на сетевое подключение.Тесты запускаются только в том случае, если сеть работает, в противном случае их перепланирование происходит на несколько минут позже (с новым экземпляром эмулятора).Хотя это не предотвращает проблему, оно предотвращает ложные сбои в нашей системе непрерывной интеграции.

Я проверяю, работает ли сеть, с помощью небольшого скриптового сценария, который выполняется как отдельное задание:

String status=
   ['sh', '-c', 'adb shell dumpstate | grep -m1 \"Mobile data state: \"'].execute().text.trim();

if (status=="Mobile data state: CONNECTED") {
   System.exit(0);
} else {
   System.exit(1);
}

Потенциально растрачивая ресурсы, она превосходит альтернативу периодических сообщений об ошибках.

...