You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android应用渲染性能调试:Systrace工具运行报错求助

解决Systrace在Windows 7 + Python 2.7下的ValueError问题

针对你遇到的ValueError: invalid literal for int() with base 10: ''错误,我结合类似场景的调试经验,给你几个可行的解决方案:

1. 先排查设备连接和ADB环境

这个错误很多时候是因为systrace无法正确通过ADB获取设备信息导致的:

  • 打开命令提示符,运行adb devices,确认你的Android设备显示为device状态(如果是unauthorized,需要在设备上授权电脑的调试请求;如果离线,重新插拔USB或者重启设备的USB调试)。
  • 确保Android SDK的platform-tools目录已经添加到系统PATH里:比如你的SDK在C:\Android\Sdk,就把C:\Android\Sdk\platform-tools加到系统环境变量的PATH中。添加后重启命令提示符,运行adb version验证是否能正常输出版本信息。

2. 手动指定ADB路径运行

有时候systrace会找不到ADB的位置,你可以直接在命令里指定ADB的绝对路径:

python systrace.py --adb="C:\Android\Sdk\platform-tools\adb.exe" --time=10 -o mynewtrace.html gfx

3. 修复systrace.py脚本的空值解析问题

这个错误本质是脚本尝试把空字符串转换成整数,我们可以修改脚本里的对应代码做容错处理:

  • 找到systrace.py中触发错误的那一行(可以看报错堆栈信息定位),比如假设报错行是尝试解析CPU频率的代码:
    cpu_freq = int(line.split()[2])
    
  • 修改成带空值判断的版本:
    parts = line.split()
    # 先判断分割后的列表长度足够,且对应字段非空
    if len(parts) >= 3 and parts[2].strip():
        cpu_freq = int(parts[2])
    else:
        cpu_freq = 0  # 给个默认值避免报错
    

4. 换用更兼容的systrace版本

你当前用的systrace可能和Python 2.7、Windows 7或者Android 6.0的组合兼容性不佳,可以试试:

  • 下载对应Android 6.0版本的SDK工具包,替换当前的systrace脚本;
  • 或者使用Android Studio内置的systrace功能(在Profiler工具里的性能分析模块),图形化操作更省心,也能避开命令行脚本的兼容性问题。

内容的提问来源于stack exchange,提问作者arvere

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 06:33:56