Тестирование пользовательского интерфейса Android: «adb shell uiautomator» выдает ошибку, «uiautomator» в «adb shell» работает

#android #shell #command-line #adb #android-uiautomator

#Android #оболочка #командная строка #adb #android-uiautomator

Вопрос:

Я хотел бы скомпилировать и запустить тесты черного ящика Android UI, используя только инструменты командной строки в Windows. Я написал UiAutomatorTestCase , создал и загрузил его /data/local/tmp/ . Я проверил, что jar файл был скопирован в последний каталог.

Если я наберу

 adb shell
 

а затем введите

 uiautomator runtest MyTest.jar –c com.example.MyTest 
 

в командной строке adb shell тест выполняется успешно. Пока все хорошо.

Проблема в том, что если я объединю эти два шага и наберу

 adb shell uiautomator runtest MyTest.jar –c com.example.MyTest
 

затем я получаю следующую ошибку:

 Error: /data/local/tmp/ľc does not exist
 

Согласно документации, это должно сработать. Ошибка одинакова в 32-разрядной версии Windows 7 Pro и 64-разрядной версии Windows 8.1 Pro. Устройство представляет собой Samsung Galaxy S3 Mini (GT-I8190) под управлением Android 4.1.2 (уровень API 16).

Что я делаю не так?

Ответ №1:

Я сильно полагаю,

adb shell
$ <command>
такой же, как adb shell <command> . Я никогда не сталкивался с какими-либо несоответствиями в этом отношении.

Пожалуйста, попробуйте adb kill-server и adb start-server

Пожалуйста, также попробуйте adb -s <device_id> shell <command> найти <device_id> из adb devices

Не могли бы вы также сообщить нам, какой результат adb version ?

Комментарии:

1. Спасибо, Anvesh. Я использовал последнюю версию SDK отсюда: developer.android.com/sdk/index.html Интересно, что проблема таинственным образом исчезла через некоторое время на обоих компьютерах разработчиков. Я не знаю, что произошло — после использования вышеупомянутого двухэтапного подхода в течение нескольких дней я снова попробовал однострочный, и это сработало. В течение этих дней я один раз запускал kill-server / start-server, несколько раз перезапускал тестовые устройства и компьютеры разработчиков и т. Д. Я не могу сказать, какой из них решил проблему.

2. Рад, что ваша проблема решена.. скорее всего, это будет проблема с SDK.. Не могли бы вы отметить, что этот вопрос решен?

3. ОК. Я предполагаю, что команды kill-server и start-server решили проблему.