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

Flutter应用Google Play预启动报告TikTok Tracing异常求助

问题描述

我开发的一款Flutter应用上传至Google Play Console后,预启动报告在Google Pixel 5(Android 11,SDK 30)设备上触发如下错误,本地同参数模拟器无法复现,且是更新依赖包后首次出现:

Logical.txt:
at tk_trace.Broadcast to com.google.android.apps.search.googleapp.permissions.udcdataservice.facs.FacsBroadcastReceiver_Receiver com.google.android.gms.udc.action.FACS_CACHE_UPDATED_EXPLICIT(Unknown Source:0)
Exception com.google.apps.tiktok.tracing.ct: at tk_trace.Broadcast to com.google.android.apps.search.googleapp.permissions.udcdataservice.facs.FacsBroadcastReceiver_Receiver com.google.android.gms.udc.action.FACS_CACHE_UPDATED_EXPLICIT(Unknown Source:0)
Caused by: com.google.android.gms.common.api.m: 20: The connection to Google Play services was lost due to service disconnection.
at com.google.android.gms.common.api.internal.ad.a (SourceFile:16)
at com.google.android.gms.common.api.internal.bk.b (SourceFile:179)
at com.google.android.gms.common.api.internal.bk.a (SourceFile:167)
at com.google.android.gms.common.internal.aa.a (SourceFile:2)
at com.google.android.gms.common.internal.f.handleMessage (SourceFile:38)
at android.os.Handler.dispatchMessage (Handler.java:106)
at com.google.android.gms.j.c.b.c.a (SourceFile:5)
at com.google.android.gms.j.c.b.c.dispatchMessage (SourceFile:4)
at android.os.Looper.loop (Looper.java:223)
at android.os.HandlerThread.run (HandlerThread.java:67)

可能的原因分析

1. Google Play Services 依赖版本不兼容

更新Flutter依赖时,可能引入了与目标设备(Android 11)预装的Google Play Services版本不匹配的组件:

  • 若项目中google_maps_flutter、firebase_core等依赖的Play Services版本过高,而预启动设备上的Play Services未同步更新,会直接导致连接断开。
  • 可在android/build.gradle中统一指定适配Android 11的稳定版本来规避冲突:
    ext {
        playServicesVersion = "20.1.0"
    }
    

2. 后台逻辑的权限限制触发异常

Android 11对后台操作权限限制更严格,更新依赖后可能新增了后台访问Play Services的逻辑:

  • 预启动测试中,应用可能被系统触发FACS_CACHE_UPDATED_EXPLICIT这类广播,此时后台状态下访问Play Services会因权限不足或系统限制导致连接中断。
  • 检查新增依赖是否添加了后台广播接收器或定时任务,确保访问Play Services前先检查连接状态,并处理断开异常。

3. 依赖包的隐性交互逻辑变更

部分依赖包更新后,底层与Google Play Services的交互逻辑被修改:

  • 比如同步调用改异步、调整连接超时时间等,在预启动测试的特定环境下触发了连接断开。
  • 用flutter pub outdated对比更新前后的依赖列表,重点排查Google服务、权限相关的包,逐步回退测试定位具体问题依赖。

4. 预启动测试环境的特殊性

Google Play Console的预启动设备与本地模拟器存在环境差异:

  • 预启动设备可能运行特定系统补丁、限制策略或Google服务的测试版本,导致与应用交互时出现特有异常。
  • 这种情况下该错误可能不影响实际用户,但仍需确保应用对Play Services连接断开有容错处理,比如重试机制或友好提示。

5. Android 11 权限适配缺失

更新依赖后,可能未适配Android 11的隐私规则:

  • 涉及位置、账号等需要Play Services的功能,在Android 11中需要更明确的权限声明或动态请求,若依赖包未处理会导致连接失败。
  • 检查AndroidManifest.xml是否添加了必要权限(如ACCESS_FINE_LOCATION),并确认动态权限请求逻辑正确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 16:13:19