为何集成Stetho的Android应用DevTools突然不显示网络流量
问题根因
该异常由Chrome 89版本的非向后兼容接口改动导致,和应用端代码无任何关联。
- Stetho的网络监控能力,本质是复用Chrome DevTools协议的
Network域接口:拦截应用内的OkHttp请求,将请求元数据透传给本地Chrome,渲染出对应的网络请求列表和详情面板。 - Chrome 89版本对该接口的入参校验规则、事件结构格式做了静默调整,没有给第三方调试工具预留适配窗口。当Stetho上报的请求数据不符合新版校验规则时,DevTools前端会直接静默裁减掉整个网络模块,不会弹出任何显性报错提示。
可落地解决方式
- 降级本地Chrome至88及以下稳定版本,可直接恢复原有调试体验,无需改动应用内任何代码。降级完成后需在Chrome设置中关闭自动更新,避免版本自动升级回不兼容区间。
- 若必须使用Chrome 89及以上版本,可将Stetho依赖升级至适配新接口的修复版本,按模块指引调整
stetho-okhttp3的初始化逻辑,让网络事件上报格式对齐新版DevTools的要求。 - 临时应急方案:打开DevTools后手动从左上角的面板选择器中勾选Network模块,多数场景可绕过前端的自动裁剪逻辑,但会存在请求列表更新延迟、单条请求详情无法完整展示的问题。

内容的提问来源于stack exchange,提问作者lannyf
相关产品推荐
相关产品推荐

