使用 R8 的 Firebase 中的循环参考错误

Posted

技术标签:

【中文标题】使用 R8 的 Firebase 中的循环参考错误【英文标题】:Circular reference error in firebase with R8 【发布时间】:2019-09-30 04:13:39 【问题描述】:

Firebase 和 R8 出现以下错误。

[CIRCULAR REFERENCE:java.lang.IllegalArgumentException: java.lang.IllegalArgumentException: Multiple entries with same key: Method com.google.firebase.iid.FirebaseInstanceId.zza Proto LLL com.google.android.gms.tasks.Task java.lang.String java.lang.String=Encoded method Method com.google.firebase.iid.FirebaseInstanceId.zza Proto LLL com.google.android.gms.tasks.Task java.lang.String java.lang.String and Method com.google.firebase.iid.FirebaseInstanceId.zza Proto LLL com.google.android.gms.tasks.Task java.lang.String java.lang.String=Encoded method Method com.google.firebase.iid.FirebaseInstanceId.zza Proto LLL com.google.android.gms.tasks.Task java.lang.String java.lang.String]

请帮助我提供更多调试方法。如果需要更多日志来调试,请告诉我。

编辑: 从 3.4.0-beta02 开始,它是固定的。

【问题讨论】:

【参考方案1】:

我在最新的 Android Studio 3.5 中也遇到过这个错误。按照 Google 问题跟踪器的链接修复它,只需在我的 Proguard 规则中添加这一行:

-keep class com.google.firebase.iid.FirebaseInstanceId zza(...);

【讨论】:

【参考方案2】:

今天我也遇到了这个问题。据报道here,他们似乎正在努力。

【讨论】:

【参考方案3】:

这应该在 R8 版本 1.5.25 中修复,请参阅 https://issuetracker.google.com/132575649#comment8 如何使用它,或者等待应该包含修复的 Andriod Studio 3.4.0-beta02。

【讨论】:

以上是关于使用 R8 的 Firebase 中的循环参考错误的主要内容,如果未能解决你的问题,请参考以下文章

循环通过值事件类型并在 swift 中使用 Firebase 生成值 UIButton 的 titleLabel

在 vuex 中设置 firebase.User 会导致永恒循环

Android 获取 R8 错误:尝试使用缩小版本运行 UI 测试时已经有映射

带有 ProGuard 的 Firebase

如何使用最新的 R8 Shrinker 版本

在 SwiftUI 中使用 For 循环获取 Firebase 数据