Dagger 2麻烦@Injecting-FirebaseMessagingService

Car*_*son 11 java android firebase google-cloud-messaging dagger-2

我最近尝试将我正在处理的应用程序迁移GCMFCM.在这样做的时候,我发现我以前一直Dagger 2 (2.0.2)用来在服务中提供我的RetrofitAPI和其他用户数据管理器的实例(没有问题),我再也不能这样做了FirebaseMessagingService.

每当我尝试使用FirebaseMessagingService我的Dagger 2 Component界面中列出的子类进行编译时,我都会得到一个IllegalArgumentException.在深入研究一些代码之后,似乎在Dagger 2尝试验证类名并发现第一个字母不是大写时抛出异常.FirebaseMessagingService至少在我的最后,继承自uglified/minified代码库,它的直接超类是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提供程序.

niz*_*.sp 7

经过半天的奋斗,终于转向Dagger 2.7修复了这个问题.

compile "com.google.dagger:dagger:2.7"
apt "com.google.dagger:dagger-compiler:2.7"
Run Code Online (Sandbox Code Playgroud)

  • 我确认这对我有用.从2.0升级到2.7后没有重大变化. (2认同)