Jul*_*ian 6 android xamarin.forms firebase-authentication google-signin
我刚刚为我的一个应用程序创建了更新Xamarin.Forms
,现在我遇到了一个问题:将新的.aab上传到 Google Play后,Firebase登录工作流程突然中断。到目前为止一直运行良好。
当我尝试登录时,选择 Google 用户帐户后,设备日志中会显示以下错误消息:
Time Device Name Type PID Tag Message
11-18 16:49:57.295 Samsung SM-S901B Verbose 5646 mono-stdout com.google.firebase.FirebaseException: An internal error has occurred. [ Instantiation of JsonResponse failed! class com.google.android.gms.internal.firebase-auth-api.zzaac ]
at com.google.android.gms.internal.firebase-auth-api.zzwe.zza(com.google.firebase:firebase-auth@@21.0.8:4)
at com.google.android.gms.internal.firebase-auth-api.zzxc.zza(com.google.firebase:firebase-auth@@21.0.8:9)
at com.google.android.gms.internal.firebase-auth-api.zzxd.zzl(com.google.firebase:firebase-auth@@21.0.8:1)
at com.google.android.gms.internal.firebase-auth-api.zzxa.zzh(com.google.firebase:firebase-auth@@21.0.8:25)
at com.google.android.gms.internal.firebase-auth-api.zzwc.zzh(com.google.firebase:firebase-auth@@21.0.8:1)
at com.google.android.gms.internal.firebase-auth-api.zzua.zza(com.google.firebase:firebase-auth@@21.0.8:2)
at com.google.android.gms.internal.firebase-auth-api.zzxl.zzb(com.google.firebase:firebase-auth@@21.0.8:13)
at com.google.android.gms.internal.firebase-auth-api.zzxl.zza(com.google.firebase:firebase-auth@@21.0.8:14)
at com.google.android.gms.internal.firebase-auth-api.zzwr.zzq(com.google.firebase:firebase-auth@@21.0.8:4)
at com.google.android.gms.internal.firebase-auth-api.zzuh.zzA(com.google.firebase:firebase-auth@@21.0.8:4)
at com.google.android.gms.internal.firebase-auth-api.zzwd.zzu(com.google.firebase:firebase-auth@@21.0.8:5)
at com.google.android.gms.internal.firebase-auth-api.zzvj.zzc(com.google.firebase:firebase-auth@@21.0.8:1)
at com.google.android.gms.internal.firebase-auth-api.zzxe.run(com.google.firebase:firebase-auth@@21.0.8:1)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637)
at java.lang.Thread.run(Thread.java:1012)
Run Code Online (Sandbox Code Playgroud)
这仅影响由 Google Play 签名的发布版本,因此,我无法在调试器中复制它。运行调试版本时,一切都按预期工作。
Android 版本:13.0 Android 目标 API:33
NuGet 包(仅显示看似相关的包):
我在 Android 活动中使用 Google 登录按钮,但尚未使用 Web 身份验证器。
我使用 Android App Bundles (.aab) 进行发布,而不是上传 .apk 文件。
我已对照 Firebase 控制台、google-services.json、Google Cloud 中的指纹检查了所有 SHA 证书指纹(针对调试和发布版本以及我的密钥库中的签名证书和 Google Play 用于签署发布的证书)控制台以及我的 Android API 密钥的应用程序限制。
调试不会产生相同的结果,因此我只能设法使用设备日志来获取上面显示的异常。
除此之外,我还为 Xamarin.Forms 升级到了最新版本的 Google 和 Firebase Auth 库。
我现在有点不知所措。有没有人对如何进一步缩小范围有任何建议,或者以前有人遇到过这个问题吗?
小智 12
在 proguard-rules.pro 文件中添加以下几行应该可以解决此问题,
-keep class com.google.firebase.** { *; }
-keep class com.google.android.gms.** { *; }
-dontwarn com.google.firebase.**
-dontwarn com.google.android.gms.**
Run Code Online (Sandbox Code Playgroud)
它又起作用了。
该问题与签名证书(这通常是此类问题的第一个解决方案)和正在使用的库无关。
这个问题实际上是由一个小优化引起的,该优化导致代码收缩器删除了一些 Firebase 相关代码。(暂时)禁用代码收缩器解决了该问题。
归档时间: |
|
查看次数: |
1452 次 |
最近记录: |