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

部分华为设备出现JobInfoSchedulerService相关ANR问题,请问如何修复?

修复思路

1. 调整Google Data Transport依赖版本

com.google.android.datatransport 是Firebase系列组件底层依赖的数据传输库,多个历史版本存在与华为ROM的JobScheduler管控逻辑不兼容的问题。优先将项目中Firebase BOM升级到最新稳定版,也可以手动指定无已知ANR缺陷的transport版本:

implementation "com.google.android.datatransport:transport-runtime:3.2.0"

2. 强制禁用JobScheduler调度策略

华为ROM对后台JobService的调度限制非常严格,排队的Job任务很容易触发ANR拦截。可以在AndroidManifest.xml中添加配置,强制Data Transport放弃JobScheduler,回退到更轻量的调度逻辑:

<meta-data android:name="com.google.android.datatransport.runtime.scheduling.jobscheduling.SchedulerConfig.override_job_scheduler" android:value="false" />

3. 优化Firebase Analytics初始化与上报逻辑

  • 不要在Application的onCreate主线程同步初始化Firebase Analytics,将初始化逻辑放到子线程延迟1~2秒执行,避开冷启动阶段的主线程资源竞争
  • 在用户同意隐私协议前,调用setAnalyticsCollectionEnabled(false)关闭自动上报,避免冷启动阶段就触发数据传输调度任务
  • 针对华为设备可单独配置上报策略,比如后台运行时暂停非核心埋点上报,降低调度触发频次

4. 兜底禁用问题Service

如果上述方案都无法生效,可以直接在AndroidManifest.xml中禁用有问题的JobInfoSchedulerService,不会影响数据上报逻辑,仅会让传输层回退到其他调度方式:

<service android:name="com.google.android.datatransport.runtime.scheduling.jobscheduling.JobInfoSchedulerService" android:enabled="false" tools:node="replace" />

5. 检查混淆配置

确认混淆规则没有误裁剪Data Transport的必要类信息,添加官方保留规则避免混淆导致的逻辑异常:

-keep class com.google.android.datatransport.** { *; }
-dontwarn com.google.android.datatransport.**

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 06:15:04