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

Firebase Phone Auth报错17499:开启混淆后短信验证码请求失败

Firebase Phone Auth 17499错误(开启混淆/资源压缩时)解决方法

这个错误是因为开启minifyEnabled和shrinkResources后,ProGuard/R8混淆工具移除或混淆了Firebase Auth内部依赖的Gson序列化类,导致JsonResponse无法实例化com.google.android.gms.internal.firebase-auth-api.zzaan,进而触发17499状态码错误。

以下是针对性的解决步骤:

  • 添加Firebase Auth专属ProGuard规则
    在项目的proguard-rules.pro文件中追加以下规则,确保Firebase Auth内部类不被混淆或移除:

    # 保留Firebase Auth内部核心类
    -keep class com.google.android.gms.internal.firebase-auth-api.** { *; }
    -keep class com.google.firebase.auth.** { *; }
    
    # 保留Gson序列化相关类与属性,避免序列化失败
    -keepattributes Signature, InnerClasses, EnclosingMethod
    -keep class * implements com.google.gson.TypeAdapterFactory
    -keep class * implements com.google.gson.JsonSerializer
    -keep class * implements com.google.gson.JsonDeserializer
    
  • 配置资源压缩白名单
    若开启shrinkResources,创建或修改res/raw/keep.xml文件,确保Firebase相关资源不被误删:

    <?xml version="1.0" encoding="utf-8"?>
    <resources xmlns:tools="http://schemas.android.com/tools"
        tools:keep="@raw/firebase_*" />
    
  • 更新Firebase Auth依赖版本
    检查并升级build.gradle(Module级别)中的Firebase Auth依赖到最新稳定版,避免旧版本的混淆兼容性问题:

    implementation 'com.google.firebase:firebase-auth:22.3.0' // 替换为当前最新版本
    
  • 添加R8兼容规则(可选)
    若使用默认的R8混淆工具,可追加以下规则避免警告:

    -dontwarn com.google.android.gms.internal.firebase-auth-api.**
    

完成以上配置后,重新构建开启混淆的debug或release包,即可验证错误是否修复。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 02:42:45