【发布时间】:2016-06-01 21:16:10
【问题描述】:
我最近尝试将我正在处理的应用程序从 GCM 迁移到 FCM。这样做时,我发现我以前使用Dagger 2 (2.0.2) 提供我的Retrofit API 实例和服务内的其他用户数据管理器(没有问题),我不能再为@ 987654326@。
每当我尝试使用Dagger 2 Component 接口中列出的FirebaseMessagingService 的子类进行编译时,我都会得到一个IllegalArgumentException。在挖掘了一些代码之后,当Dagger 2 尝试验证类名并发现第一个字母不是大写时,似乎引发了异常。 FirebaseMessagingService,至少在我这边,继承自一个丑陋/缩小的代码库,它的直接超类是 zzb (public class FirebaseMessagingService extends com.google.firebase.iid.zzb)。
我最好的猜测是这就是罪魁祸首。如果这确实是问题所在,那么除了现在坚持使用GCM 之外,我不确定该怎么做。有人对此有任何想法或类似经验吗?
编辑:我有机会向其中一位 Firebase 开发人员询问此问题:https://www.reddit.com/r/androiddev/comments/4upj1o/beware_of_the_new_firebase/d5tdbk3 - 没有解决方案。我可能只是要避免直接注入并整合到静态 API 提供程序。
【问题讨论】:
-
能否将您的依赖项添加到问题中?
-
我用 Dagger 2 @Inject 到一个 FirebaseMessaging 子类并且没有问题。您能否发布您的 Component 和 FirebaseMessagingService 子类的相关代码,以便我们更好地帮助您?
标签: java android firebase google-cloud-messaging dagger-2