Скрипты для Android - PullRequest
       69

Скрипты для Android

10 голосов
/ 26 сентября 2011

Я пытаюсь выполнить пример программы на Python через командную строку Monkey Runner, и она выдает ошибку

Can't open specified script file
Usage: monkeyrunner [options] SCRIPT_FILE

    -s      MonkeyServer IP Address.
    -p      MonkeyServer TCP Port.
    -v      MonkeyServer Logging level (ALL, FINEST, FINER, FINE, CONFIG, INFO,
WARNING, SEVERE, OFF)

Исключение в потоке "main" java.lang.NullPointerException, так что любой может помочь мне понятьчтобы решить это

Ответы [ 6 ]

17 голосов
/ 20 февраля 2012

scriptfile должен быть полным именем файла, попробуйте ниже monkeyrunner c:\test_script\first.py

1 голос
/ 19 октября 2012

Во всех ОС семейства Unix / Linux можно использовать синтаксис Sha Bang.

Отредактируйте первую строку вашего скрипта с результатами следующей команды:

which monkeyrunner

например, если monkeyrunner (обычно поставляется с android sdk) был установлен в / usr / local / bin / sdk write:

#!/usr/local/bin/sdk/tools/monkeyrunner

или даже использовать "env"

#!/usr/bin/env monkeyrunner

затем установите ваш скрипт как исполняемый файл

chmod +x <script>

Теперь вы можете запустить свой скрипт из оболочки.

1 голос
/ 11 октября 2011

попробуйте использовать что-то вроде

...\tools>monkeyrunner -v ALL first.py

, где first.py был мой пример скрипта Python, который я скопировал в папку инструментов Android SDK (место, где находится monkeyrunner.bat)

0 голосов
/ 19 июня 2014

monkeyrunner.bat cygpath -w $(pwd)/monkey.py

0 голосов
/ 27 января 2014

Я встречал те же вещи, что и вы, я решил с помощью команды «monkeyrunner» в разделе «Инструменты», и ваш файл сценария должен содержать полное имя пути. Похоже, каталог «tools» является основным каталогом MonnkeyRunner. Я подавлен тем, что не могу запустить файлы скриптов напрямую из IDE pydev.

0 голосов
/ 24 декабря 2012

Похоже, не имеет смысла переключать рабочий каталог в папку Android SDK, а просто для получения некоторого относительного пути ссылки для себя.Это означает, что вы должны указать полный путь к вашему файлу сценария и файлам изображений PNG, которые вы хотите сохранить или сравнить с ними.

Лучший способ - изменить несколько строк в файле "monkeyrunner.bat" в папке SDK.как ниже.Это будет использовать ваш текущий путь в качестве рабочего каталога, поэтому нет необходимости использовать полное имя файла пути.

    rem don't modify the caller's environment
setlocal

rem Set up prog to be the path of this script, including following symlinks,
rem and set up progdir to be the fully-qualified pathname of its directory.
set prog=%~f0

rem Change current directory and drive to where the script is, to avoid
rem issues with directories containing whitespaces.
rem cd /d %~dp0

rem Check we have a valid Java.exe in the path.
set java_exe=
call %~sdp0\lib\find_java.bat
if not defined java_exe goto :EOF

set jarfile=monkeyrunner.jar
set frameworkdir=
set libdir=


if exist %frameworkdir%%jarfile% goto JarFileOk
    set frameworkdir=%~sdp0\lib\

if exist %frameworkdir%%jarfile% goto JarFileOk
    set frameworkdir=%~sdp0\..\framework\

:JarFileOk

set jarpath=%frameworkdir%%jarfile%

if not defined ANDROID_SWT goto QueryArch
    set swt_path=%ANDROID_SWT%
    goto SwtDone

:QueryArch

    for /f %%a in ('%java_exe% -jar %frameworkdir%archquery.jar') do set swt_path=%frameworkdir%%%a

:SwtDone

if exist %swt_path% goto SetPath
    echo SWT folder '%swt_path%' does not exist.
    echo Please set ANDROID_SWT to point to the folder containing swt.jar for your platform.
    exit /B

:SetPath

call %java_exe% -Xmx512m -Djava.ext.dirs=%frameworkdir%;%swt_path% -Dcom.android.monkeyrunner.bindir=%frameworkdir%\..\..\platform-tools\ -jar %jarpath% %*
...