2015-06-08 1 views
1

Я пытаюсь запустить Systrace, но я получаю сообщение об ошибке при запуске этой команды.Ошибка при попытке использовать Android systrace.py в Linux Ubuntu

[email protected]:~/Android/Sdk/platform-tools/systrace$ python 
Python 2.7.6 (default, Mar 22 2014, 22:59:56) 
[GCC 4.8.2] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> 
[email protected]:~/Android/Sdk/platform-tools/systrace$ ls 
AUTHORS prefix.html   systrace.py 
LICENSE suffix.html   systrace_trace_viewer.html 
NOTICE systrace-legacy.py UPSTREAM_REVISION 
[email protected]:~/Android/Sdk/platform-tools/systrace$ python systrace.py --time=10 -o mynewtrace.html 
Traceback (most recent call last): 
    File "systrace.py", line 320, in <module> 
    main() 
    File "systrace.py", line 158, in main 
    stderr=subprocess.PIPE) 
    File "/usr/lib/python2.7/subprocess.py", line 710, in __init__ 
    errread, errwrite) 
    File "/usr/lib/python2.7/subprocess.py", line 1327, in _execute_child 
    raise child_exception 
OSError: [Errno 2] No such file or directory 

В настоящее время я использую Ubuntu с Android SDK 5.1.1, установленным вместе с Android Studio. Ниже есть мой экспорт PATH в .bashrc:

export PATH="~/Applications/android-studio/bin/:$PATH" 
export PATH="~/Android/Sdk/platform-tools/:$PATH" 
export PATH="~/Android/Sdk/tools/:$PATH" 
+0

Похоже, что у него проблемы с поиском «adb», хотя похоже, что у вас есть правильный путь. Если вы просто запускаете «adb», он найден на вашем пути? Попробуйте отредактировать скрипт, прежде чем вызов «Popen» добавит 'print >> sys.stderr, 'args -% s'% atrace_args' и посмотреть, что он пытается сделать. – fadden

+0

@fadden Я обновил Python до v2.7.10, а также подтвердил работу команды adb. Когда я набираю 'adb devices', я вижу свое устройство в списке. Я добавил два оператора печати. Один из 'atrace_args' и один для' tracer_args'. Ниже приведен вывод: '['atrace', '-z', '-t', '10', ';', 'ps', '-t'] tracer args are ['adb', 'shell' , 'atrace -z -t 10; ps -t '] ' – Zythyr

ответ

1

Я установил проблемы, изменив свой экспорт PATH быть указан абсолютный путь вместо относительного пути. Это означает, что я не могу определить свой домашний каталог, используя ~/..., я должен использовать /home/username/....

export PATH="/home/user1/Applications/android-studio/bin/:$PATH" 
export PATH="/home/user1/Android/Sdk/platform-tools/:$PATH" 
export PATH="/home/user1/Android/Sdk/tools/:$PATH" 

Однако, мне не понятно, почему systrace.py не будет работать должным образом, когда PATH определяется с помощью ~/... вместо /дома/имя пользователя/... , АБР работает отлично, когда PATH определяется с помощью ~/....

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