2013-04-28 3 views
1

Я некоторое время смотрел с AndroidViewClient, но не понимаю, почему это расширение не отображает идентификатор представления при запуске примера dump.py. Мое устройство выше API lvl 16. Что может быть проблемой?AndroidViewClient не показывает id

я получаю выход, как это, но опять же я не знаю, почему он не может сказать имя взглядов ...

android.widget.FrameLayout id/no_id/1 
    android.widget.LinearLayout id/no_id/2 
     android.widget.FrameLayout id/no_id/3 
     android.widget.RelativeLayout id/no_id/4 
      android.widget.Button id/no_id/5 New Jersey 
      android.widget.Button id/no_id/6 New York 
      android.widget.Button id/no_id/7 New Castle 
      android.widget.Button id/no_id/8 New Berg 
      android.widget.Button id/no_id/9 New Class 

Ошибка:

C:\Users\EGHDK\android-sdk\tools>monkeyrunner C:\AndroidViewClient-master\Andro 
idViewClient-master\AndroidViewClient\examples\dump.py 
130428 20:11:28.636:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions 
] Script terminated due to an exception 
130428 20:11:28.636:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions 
]Traceback (most recent call last): 
    File "C:\AndroidViewClient-master\AndroidViewClient-master\AndroidViewClient\e 
xamples\dump.py", line 87, in <module> 
    vc = ViewClient(*ViewClient.connectToDeviceOrExit(**kwargs1), **kwargs2) 
    File "C:\AndroidViewClient-master\AndroidViewClient-master\AndroidViewClient\s 
rc\com\dtmilano\android\viewclient.py", line 935, in __init__ 
    adb = ViewClient.__obtainAdbPath() 
    File "C:\AndroidViewClient-master\AndroidViewClient-master\AndroidViewClient\s 
rc\com\dtmilano\android\viewclient.py", line 1075, in _ViewClient__obtainAdbPath 

    raise Exception('adb="%s" is not executable. Did you forget to set ANDROID_H 
OME in the environment?' % adb) 
Exception: adb="adb.exe" is not executable. Did you forget to set ANDROID_HOME i 
n the environment? 

130428 20:11:28.636:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions 
]  at org.python.core.PyException.doRaise(PyException.java:219) 
130428 20:11:28.636:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions 
]  at org.python.core.Py.makeException(Py.java:1159) 
130428 20:11:28.636:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions 
]  at org.python.core.Py.makeException(Py.java:1163) 
130428 20:11:28.636:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions 
]  at org.python.core.Py.makeException(Py.java:1167) 
130428 20:11:28.636:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions 
]  at com.dtmilano.android.viewclient$py._ViewClient__obtainAdbPath$56(C:\A 
ndroidViewClient-master\AndroidViewClient-master\AndroidViewClient\src\com\dtmil 
ano\android\viewclient.py:1075) 
130428 20:11:28.636:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions 
]  at com.dtmilano.android.viewclient$py.call_function(C:\AndroidViewClient 
-master\AndroidViewClient-master\AndroidViewClient\src\com\dtmilano\android\view 
client.py) 
130428 20:11:28.636:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions 
]  at org.python.core.PyTableCode.call(PyTableCode.java:165) 
130428 20:11:28.636:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions 
]  at org.python.core.PyBaseCode.call(PyBaseCode.java:117) 
130428 20:11:28.636:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions 
]  at org.python.core.PyFunction.__call__(PyFunction.java:307) 
130428 20:11:28.636:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions 
]  at com.dtmilano.android.viewclient$py.__init__$54(C:\AndroidViewClient-m 
aster\AndroidViewClient-master\AndroidViewClient\src\com\dtmilano\android\viewcl 
ient.py:1020) 
130428 20:11:28.636:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions 
]  at com.dtmilano.android.viewclient$py.call_function(C:\AndroidViewClient 
-master\AndroidViewClient-master\AndroidViewClient\src\com\dtmilano\android\view 
client.py) 
130428 20:11:28.636:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions 
]  at org.python.core.PyTableCode.call(PyTableCode.java:165) 
130428 20:11:28.636:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions 
]  at org.python.core.PyBaseCode.call(PyBaseCode.java:297) 
130428 20:11:28.636:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions 
]  at org.python.core.PyBaseCode.call(PyBaseCode.java:191) 
130428 20:11:28.636:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions 
]  at org.python.core.PyFunction.__call__(PyFunction.java:385) 
130428 20:11:28.636:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions 
]  at org.python.core.PyFunction.__call__(PyFunction.java:380) 
130428 20:11:28.636:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions 
]  at org.python.core.PyInstance.__init__(PyInstance.java:120) 
130428 20:11:28.636:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions 
]  at org.python.core.PyClass.__call__(PyClass.java:194) 
130428 20:11:28.636:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions 
]  at org.python.core.PyObject._callextra(PyObject.java:537) 
130428 20:11:28.636:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions 
]  at org.python.pycode._pyx0.f$0(C:\AndroidViewClient-master\AndroidViewCl 
ient-master\AndroidViewClient\examples\dump.py:89) 
130428 20:11:28.636:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions 
]  at org.python.pycode._pyx0.call_function(C:\AndroidViewClient-master\And 
roidViewClient-master\AndroidViewClient\examples\dump.py) 
130428 20:11:28.636:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions 
]  at org.python.core.PyTableCode.call(PyTableCode.java:165) 
130428 20:11:28.636:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions 
]  at org.python.core.PyCode.call(PyCode.java:18) 
130428 20:11:28.636:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions 
]  at org.python.core.Py.runCode(Py.java:1197) 
130428 20:11:28.636:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions 
]  at org.python.core.__builtin__.execfile_flags(__builtin__.java:538) 
130428 20:11:28.636:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions 
]  at org.python.util.PythonInterpreter.execfile(PythonInterpreter.java:156 
) 
130428 20:11:28.636:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions 
]  at com.android.monkeyrunner.ScriptRunner.run(ScriptRunner.java:116) 
130428 20:11:28.636:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions 
]  at com.android.monkeyrunner.MonkeyRunnerStarter.run(MonkeyRunnerStarter. 
java:77) 
130428 20:11:28.636:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions 
]  at com.android.monkeyrunner.MonkeyRunnerStarter.main(MonkeyRunnerStarter 
.java:189) 

ответ

3

Если устройства; API уровень > = 16 бэкэнд по умолчанию, используемый AndroidViewClient, составляет UiAutomator, который не показывает идентификаторы. Чтобы обеспечить дополнительный уровень поддержки, AndroidViewClient присваивает уникальным идентификаторам Views, и это то, что показывает dump.py в вашем случае.

androidviewclient activity diagram

Вы можете заставить ViewServer бэкенда путем предоставления соответствующей опции командной строки dump.py:

$ dmup.py --force-view-server-use 

и вы получите View идентификаторов.

+0

Хм ... думал, что это будет трюк, но если я добавлю сервер с силовым видом, это даст мне ошибку. – EGHDK

+0

Какая ошибка? –

+0

Обновлен мой вопрос. Примечание. Программа просмотра иерархии работает. – EGHDK

Смежные вопросы