3

我正在尝试运行Systrace,但运行命令时出现错误。

user1@PC1:~/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.
>>> 
user1@PC1:~/Android/Sdk/platform-tools/systrace$ ls
AUTHORS  prefix.html         systrace.py
LICENSE  suffix.html         systrace_trace_viewer.html
NOTICE   systrace-legacy.py  UPSTREAM_REVISION
user1@PC1:~/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

我目前正在运行带有 Android SDK 5.1.1 和 Android Studio 的 Ubuntu。下面是我在 .bashrc 中的 PATH 导出:

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

2 回答 2

5

即使答案被接受,对于那些将来面临这个问题的人来说;

/platform-tools目录(adb 在 /platform-tools 目录中)而不是从/platform-tools/systrace目录运行 systrace。例如

.../platform-tools$ python systrace/systrace.py
于 2018-06-29T10:35:14.353 回答
2

我通过将我的 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在使用~/...而不是/home/username/...定义 PATH 时无法正常运行。当使用~/...定义 PATH 时,ADB 工作得非常好。

于 2015-06-11T16:26:53.137 回答