Android-эмулятор иногда не запускает сеть

Каждые несколько раз я открываю эмулятор, он будет находиться в автономном режиме, а "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 ответ

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

Как я тестирую, если сеть работает с небольшим groovy script, который запускается как отдельное задание:

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);
}

В то время как потенциально расточительство ресурсов, он превосходит альтернативные электронные письма с прерывистым отказом.

licensed under cc by-sa 3.0 with attribution.