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

Android开启minify=true后Cloud Firestore运行崩溃问题求助

问题根因

崩溃由R8代码混淆压缩阶段误处理gRPC依赖的枚举类引发。从异常调用栈最终的java.lang.NoSuchMethodException: values []可定位:Firestore底层依赖的gRPC OkHttp通道初始化时,io.grpc.okhttp.OkHttpChannelBuilder类的静态初始化块调用EnumSet.of创建枚举集合,该逻辑会通过反射查找枚举类内置的values()方法,但该方法被R8默认混淆规则误删除或重命名,触发内部断言错误,最终导致Firestore初始化失败崩溃。
该异常仅在开启minify的构建中出现,完全符合混淆规则缺失的典型表现。

修复步骤

1. 添加缺失的混淆规则

打开模块目录下的proguard-rules.pro文件,追加以下规则:

# 保留所有枚举类反射调用所需的内置方法
-keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}
# 保留gRPC、Firestore相关类不被错误裁剪、混淆
-keep class io.grpc.** { *; }
-dontwarn io.grpc.**
-keep class com.google.firebase.firestore.** { *; }

修改完成后重新构建release包即可修复崩溃。

2. 可选优化:升级Firestore依赖版本

如果你当前使用的Firestore BOM版本低于30.3.0,可直接升级到最新版Firestore BOM,新版依赖已经内置了对应的消费者混淆规则,无需手动添加上述配置。修改模块级build.gradle依赖块:

dependencies {
    implementation platform('com.google.firebase:firebase-bom:33.1.0')
    implementation 'com.google.firebase:firebase-firestore'
}
验证方法

修改配置后,在debug开启minify的构建变体下运行测试,确认Firestore初始化、待办事项数据读写正常无崩溃,即可验证修复生效。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 01:15:37