You need to enable JavaScript to run this app. Android开启minifyEnabled与shrinkResources后Firebase Analytics无数据,需调ProGuard吗?
优惠活动
大模型
产品
解决方案
定价
更多

Android开启minifyEnabled与shrinkResources后Firebase Analytics无数据,需调ProGuard吗?

问题根因与解决方案

核心结论:需要补充ProGuard保活规则,你的当前配置没有覆盖Firebase Analytics的核心类防混淆逻辑
你当前在release构建里开启了minifyEnabled true+优化版混淆规则proguard-android-optimize.txt,这套规则会默认裁剪所有被判定为“无入口调用”的类,而Firebase Analytics的核心链路大量依赖反射调用,没有显式的代码调用入口,极容易被误裁、重命名,直接导致上报链路完全失效。


必须添加到proguard-rules.pro的规则

直接将以下规则追加到你项目根目录的proguard规则文件里即可,不需要修改现有build.gradle结构:

# 保留Firebase Analytics核心SDK代码,防止被混淆/裁剪
-keep class com.google.android.gms.measurement.** { *; }
-keep class com.google.firebase.analytics.** { *; }
-dontwarn com.google.android.gms.measurement.**
-dontwarn com.google.firebase.analytics.**

注意:虽然新版本Firebase SDK会自带基础的consumer ProGuard规则,但在开启proguard-android-optimize.txt的激进优化时,自带规则的优先级会被部分覆盖,手动追加保活规则是最稳妥的规避方案。


配套排查校验点

  • 如果你想100%确认是混淆导致的问题,可以临时将release构建的minifyEnabled临时改为false,打个测试包验证Analytics上报是否恢复,如果能收到数据就可以确定是规则缺失问题
  • 你当前已经开启的firebaseCrashlytics { mappingFileUploadEnabled true }配置是正确的,但这套机制只能解析崩溃栈,没法排查Analytics这种无异常、纯链路被裁剪的失效问题,不能替代ProGuard保活规则
  • shrinkResources配置本身不会影响Firebase Analytics的上报,不需要为这个配置额外调整资源规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.25 07:36:05