【问题标题】:Android: systrace in cygwin does not write to output file, plus generates garbageAndroid:cygwin中的systrace不写入输出文件,加上产生垃圾
【发布时间】:2012-11-27 16:48:01
【问题描述】:

我在使用 python 2.7 的 windows 2003 PC 上由 android Jelly bean SDK 提供的 systrace 工具出现以下错误

在 cygwin 编辑器中执行以下命令

python systrace.py --time=10 -o mynewtrace.html

▒GS{▒&▒izAr ▒▒9▒Zww▒▒▒Hj▒▒K▒[X▒▒▒4▒i▒▒D▒▒@▒"▒▒▒]▒lJ▒!▒▒)K▒dKY▒▒:\▒?▒ ▒?w%{D▒g▒?Q&▒wQ▒▒p%'T▒▒oE▒(▒:▒▒k▒▒◄▒▒)▒2▒?▒%▒▒4▒w^▒ ▒~▒▒/▒g▒7?M?▒c▒r#/▒oDE▒tg▒▒N▒▒S'\▒▒▒▒↓▒▒GY▒x▒↓▒2D'↓CN▒{▒f2?pu▒▒?▒▒▒▒(g▒▒9▒f▒<A▒Hz▒+P/▒▒sTU▒b▒?{▒/▒▒▒▒4u_▒▒?▒!0▒▒▒▒1▒▒▒▒@1 ▒▒▒s ▒↓
    Y▒;♥♥▒▒3G▒H     ▒▒&v▒▒:♦▒{▒▒*▒?7▒▒=▒"▒♥▒▒▒▒▒♥▒▒▒<▒:n?♥<i▒▒►    ▒v/▒▒↓▒/♣c▒.▒)#Ou/▒▒O▒▒?▒▒▒%▒A,4+▒x▒▒▒@▒*gfσ▒7▒♣▒▒EtV▒3▒▒▒▒▒r♦▒kQ▒a♦↓▒▒|/:Iy▒{▒◄x8y▒▒▒h▒M▒▒▒G|▒▒"#⌂▒▒gK-▒▒▒'▒▒(▒▒FfN▒▒▒▒▒↑▒▒~4▒⌂▒T?r▒▒▒▒▒▒!▒?▒?▒▒▒▒~CaO▒
ho▒▒L▒H▒9▒▒▒Lh▒▒▒iY▒$4▒d▒▒.C▒▒►@!↓↑▒▒▒▒RQ▒;c▒▒▒?@3▒g▒▒▒▒?G▒y▒▒?Fb▒B=▒▒W|▒%Zc▒▒Q▒UY?♣▒c▒▒$v▒▒▒?▒8▒4v▒h▒▒▒I↑▒`▒Kb▒,▒▒Y▒▒#▒+▒▒▒▒=▒▒▒▒▒▒▒▒

e▒*▒e⌂▒▒"▒P▒!↑▒}▒n♦▒IW      ▒▒▒
▒⌂▒)♠K▒?ln▒D♠:z▒:♥▒xA>▒▒LGX↑▒O▒▒W9Z▒▒p▒8▒xG$?▒▒;▒,▒M▒▒▒▒`▒kH▒▒▒kd9▒4t6▒xQH%o▒▒▒▒▒▒O▒▒▒@▒▒▒x▒3▒▒0◄~▒♦▒▒*#W▒▒▒_▒▒_y▒▒▒04▒▒▒▒P-R2K▒▒▒(?B▒e9▒g▒8M37A4▒▒n▒▒@▒▒m▒I▒.▒=▒3▒c▒▒?▒▒s▒▒▒j▒4e▒▒*E▒Q1N▒▒▒▒▒▒▒qy▒▒▒▒▒▒▒▒▒▒▒▒aN?▒_▒▒▒▒▒28_~▒]e♦▒▒▒▒&g♥v3►p▒p▒`▒J▒/▒X⌂▒{▒▒▒-▒▒▒rI▒%Q▒⌂▒▒q▒▒▒▒?▒▒▒▒/hE▒▒▒?▒▒▒▒▒▒▒7▒6▒W▒j▒▒▒w▒▒O▒▒>▒▒▒▒?▒xy▒▒v▒▒▒⌂?4▒T▒a▒◄▒c▒▒▒O7▒⌂v⌂|▒▒rL▒*▒♠▒▒▒#▒▒▒▒~}▒▒

▒K▒H2▒▒▒^l▒RI▒c^$9S$▒=▒▒BI:▒6cj+▒▒▒@
>▒▒▒&f      ▒▒▒$▒▒◄▒?▒r▒C▒Ze♥↓▒%▒▒&▒@6▒CE▒▒◄+G♣-▒▒]▒ ▒▒[c▒b\▒MBhu▒O▒▒2▒!+y▒▒▒▒lDt▒U▒▒e▒I5▒\▒▒=▒▒▒▒▒▒T▒T▒▒▒♦^▒▒v▒k▒?▒-▒▒*▒)▒9▒t?▒▒cq▒,$▒▒▒

▒▒+▒▒OM▒@▒▒▒=?▒,?d;k▒♥p▒▒sd▒w▒▒▒▒▒I▒▒p▒nk▒▒D▒▒J▒Gh▒AJ▒B
▒t▒?%D▒q▒yUfyb▒?▒▒▒o▒/q*▒▒▒%i▒▒▒▒▒?>▒v▒/▒>_-▒▒~▒▒▒▒cu▒▒▒▒▒/▒▒|▒~▒▒v3▒▒▒_▒v▒~y"▒▒?▒▒▒▒▒▒_?▒▒▒/Oj▒>▒▒▒▒~▒\▒▒▒▒▒▒▒#▒▒t▒▒2Z▒K▒8_▒▒▒J▒*▒▒▒▒^a▒▒▒4W-▒▒▒TAn error occured while capturing the trace.  Output file was not written.

应该为python添加任何环境变量??如果是,必须添加哪个变量? 谁能帮我解决这个问题?

感谢和问候

【问题讨论】:

  • 我也得到了同样的垃圾。我认为这可能是终端编码或类似的东西。所以,我尝试了 UTF-8 和 ISO-8859-16:2001(Latin-10,巴尔干)。没有不同。如果您找到解决方案,请更新此问题。干杯

标签: android python adb trace systrace


【解决方案1】:

它在 Cygwin 上不起作用的原因是来自设备的流实际上 在每个换行符之前有两个回车符。您可以通过在从 adb.stdout 读取数据后调用 'print repr(out) 来看到这一点。

您只需按如下方式更新 systrace.py 即可解决此问题:

if sys.platform == 'cygwin':
  out = out.replace('\r\r\n', '\n')
else:
  out = out.replace('\r\n', '\n')

我在https://android-review.googlesource.com/55170 发布了一个补丁来解决这个问题。

【讨论】:

  • 虽然这解决了当前的问题,但我在解析输出数据时仍然遇到间歇性故障。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-12
  • 2015-06-14
  • 2017-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多