Intereting Posts
Не найдено ни одной операции Launcher, запуск будет только синхронизировать пакет приложений на устройстве Проверка результатов поиска rawQuery для Android Не удается запустить AVD (эмулятор) Как получить карты, сделанные внутри CardView Как использовать метод onActivityResult из класса Activity Android – Запятая как десятичный разделитель на цифровой клавиатуре Любой прослушиватель возможен, если условие Как я могу одновременно записывать звук с каждого микрофона на микрофонный массив в отдельный буфер в Android? Отменить SVN в проекте Android Studio Как предустановить VideoView В то время как другой VideoView B играет – Android Android: разместите объявление внизу экрана Android Studio не может импортировать мои проекты Eclipse напрямую или как проект Gradle Как отображать CalendarView в AlertDialog? Почему диалог прогресса не показывает заголовок и сообщение о зефире? Переключение фрагментов – фрагмент карты Google V2 – активность была уничтожена Ошибка

Почему MonkeyRunner.waitForConnection () не работает в моей среде?

Автор сценария:

from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice device = MonkeyRunner.waitForConnection(5,'192.168.6.60:5555') device.installPackage('Douban_Radio.apk') 

Перед запуском:

 ~/android-sdk-linux_86/tools$adb connect 192.168.6.60:5555 connected to 192.168.6.60:5555 ~/android-sdk-linux_86/tools$adb devices List of devices attached 192.168.6.60:5555 device 

Выходной файл monkeyrunner:

 ~/android-sdk-linux_86/tools$./monkeyrunner monkeyrunnerTest.py 110412 18:12:35.017:S [main] [com.android.monkeyrunner.MonkeyRunnerOptions] Script terminated due to an exception 110412 18:12:35.017:S [main] [com.android.monkeyrunner.MonkeyRunnerOptions]Traceback (most recent call last): File "/home/jobsyang/android-sdk-linux_86/tools/monkeyrunnerTest.py", line 6, in <module> device.installPackage('Douban_Radio.apk') AttributeError: 'NoneType' object has no attribute 'installPackage' 

……

После запуска:

 ~/android-sdk-linux_86/tools$adb devices adb server is out of date. killing... * daemon started successfully * List of devices attached 

Я просто не знаю, почему MonkeyRunner.waitForConnection не работает и убивает соединение adb с устройством? Пожалуйста, помогите мне, спасибо большое!

Я запускаю AVD в локальном env, а подключенные устройства:

 ~/android-sdk-linux_86/tools$adb devices List of devices attached emulator-5554 device 192.168.6.60:5555 device 

Использование команды adb верное:

 ~/android-sdk-linux_86/tools$adb -s emulator-5554 install Douban_Radio.apk 859 KB/s (287518 bytes in 0.326s) pkg: /data/local/tmp/Douban_Radio.apk Success ~/android-sdk-linux_86/tools$adb -s 192.168.6.60:5555 install Douban_Radio.apk 2108 KB/s (287518 bytes in 0.133s) pkg: /data/local/tmp/Douban_Radio.apk Success 

С MonkeyRunner.waitForConnection в скрипте

MonkeyRunner.waitForConnection (5, 'emulator-5554') работает,
Но MonkeyRunner.waitForConnection (5, '192.168.6.60: 5555') все еще не работает.

PS: 192.168.6.60 – это ip реального устройства, связанного с adb.

Является ли serialNumber реального устройства неправильным, но почему работает команда adb -s 192.168.6.60:5555 install Douban_Radio.apk?

 adb server is out of date. killing... 

Я предполагаю, что на вашем компьютере имеется несколько исполняемых файлов adb.

Когда вы вручную подключаетесь, вы используете версию adb, поддерживающую tcp

Затем Monkeyrunner использует другую версию adb, обнаруживает, что ваш существующий сервер устарел (что означает либо более старый OR newer), и убивает его. Затем он запускает другую версию, которая не знает о вашем подключенном к tcp устройстве, так как вы никогда не говорили об этом (и это может быть не версия, поддерживающая tcp).

Это не работает, потому что нет устройств

Впоследствии вы проверяете, находите сервер adb устаревшим, убиваете его, запускаете и не можете найти никаких устройств …

Попробуйте найти / -name "adb"

А затем запустить версию adb на каждом из них

Не слепо удаляйте, переименуйте его, пока не убедитесь, что используете тот, который работает.

Второй параметр waitForConnection – это серийный номер устройства, в случае эмулятора – 'emulator-<port> »:

 device = MonkeyRunner.waitForConnection(5,'emulator-5554')