systrace:HTML输出的跟踪结果格式无效。

13

当我运行 python systrace.py --time=10 -o mynewtrace.html gfx 时,会出现以下错误

Starting tracing (10 seconds)
Tracing completed. Collecting output...
<br>

线程 Thread-11 中的异常:

Traceback (most recent call last):
  File "C:\Python27\lib\threading.py", line 801, in __bootstrap_inner
    self.run()<br>
  File "C:\Python27\lib\threading.py", line 754, in run
    self.__target(*self.__args, self.__kwargs)<br>
  File "C:\Users\rajnish.r\AppData\Local\Android\Sdk\platform-tools\systrace\cat
apult\systrace\systrace\tracing_agents\atrace_agent.py", line 194, in _collect_a
nd_preprocess
    self._trace_data = self._preprocess_trace_data(trace_data)<br>
  File "C:\Users\rajnish.r\AppData\Local\Android\Sdk\platform-tools\systrace\cat
apult\systrace\systrace\tracing_agents\atrace_agent.py", line 272, in _preproces
s_trace_data
    trace_data = strip_and_decompress_trace(trace_data)<br>
  File "C:\Users\rajnish.r\AppData\Local\Android\Sdk\platform-tools\systrace\cat
apult\systrace\systrace\tracing_agents\atrace_agent.py", line 332, in strip_and_
decompress_trace
    **trace_data = zlib.decompress(trace_data)**

错误:解压数据时发生错误-5:流不完整或截断

Outputting Systrace results...<br>
Tracing complete, writing results<br>
Traceback (most recent call last):,br>
  File "systrace.py", line 49, in <module>
    sys.exit(run_systrace.main())<br>
  File "C:\Users\rajnish.r\AppData\Local\Android\Sdk\platform-tools\systrace\cat
apult\systrace\systrace\run_systrace.py", line 196, in main
    main_impl(sys.argv)<br>
  File "C:\Users\rajnish.r\AppData\Local\Android\Sdk\platform-tools\systrace\cat
apult\systrace\systrace\run_systrace.py", line 193, in main_impl
    controller.OutputSystraceResults(write_json=options.write_json)<br>
  File "C:\Users\rajnish.r\AppData\Local\Android\Sdk\platform-tools\systrace\cat
apult\systrace\systrace\systrace_runner.py", line 68, in OutputSystraceResults
    self._out_filename)<br>
  File "C:\Users\rajnish.r\AppData\Local\Android\Sdk\platform-tools\systrace\cat
apult\systrace\systrace\output_generator.py", line 98, in GenerateHTMLOutput
    html_file.write(_ConvertToHtmlString(result.raw_data))<br>
  File "C:\Users\rajnish.r\AppData\Local\Android\Sdk\platform-tools\systrace\cat
apult\systrace\systrace\output_generator.py", line 120, in _ConvertToHtmlString
    raise ValueError('Invalid trace result format for HTML output')<br>
*

数值错误:HTML输出的跟踪结果格式无效

*


我在使用物理设备(Galaxy S8)和 Android 7 模拟器时都遇到了同样的错误。似乎跟踪日志以压缩数据的形式返回,但是 zlip 解压失败了。由于最近一周有几个关于此问题的提问,我想知道是否是更新出了问题... - Chris Rae
有趣的是,我也只能在Windows SDK上重现这个问题,而在Mac上却没有。 - Chris Rae
我在自己的电脑上也遇到了同样的错误。连接了我的MIA1,使用Python 2.7.14和pywin32-221。正在寻找解决方法... - zkvarz
@ChrisRae 这个命令在 Mac SDK 上运行正常吗? - Virendra Kumar
@VirendraKumar 是的,没错。 - Chris Rae
我也遇到了相同的问题,使用SDK Platform-tools 27.0.1和Build-Tools 28.0.0-rc1。 - fralbo
2个回答

7
我只能从Android Device Monitor中记录系统跟踪信息,控制台对我来说行不通。 在这里输入图片描述

7
Android Studio 3.1开始,仅能通过执行<android-sdk>/tools/monitor命令来使用Which(为了避免您再次进行谷歌搜索)。请参见此处 - Attila Tanyi
1
Android Studio 3.1中已弃用Android Device Monitor,并在Android Studio 3.2中将其移除。您可以通过新功能替换Android Device Monitor提供的功能。https://developer.android.com/studio/profile/monitor - Ashutosh
@Ashutosh 有新功能,但是你会如何保存/记录系统跟踪信息? - tom_mai78101

0

您需要使用--no-compress选项。像这样:

systrace.py --time=10 --no-compress -o=trace.html sched gfx view -a com.yourapp.Name

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接