Недавно я попытался перенести приложение, над которым я работаю, от GCM до FCM. При этом я обнаружил, что, когда я ранее использовал Dagger 2 (2.0.2), чтобы предоставить экземпляры моих API-интерфейсов Retrofit и других менеджеров пользовательских данных внутри службы (без проблем), я больше не мог этого сделать для FirebaseMessagingService.
Всякий раз, когда я пытаюсь скомпилировать с подклассом FirebaseMessagingService, указанным в моем интерфейсе Dagger 2 Component, я бы получил IllegalArgumentException. После копания через некоторый код кажется, что исключение возникает, когда Dagger 2 пытается проверить имя класса и обнаруживает, что первая буква не является прописной. FirebaseMessagingService, по крайней мере, на моем конце, наследуется от укрупненной/минифицированной кодовой базы, а ее ближайший суперкласс - zzb (public class FirebaseMessagingService extends com.google.firebase.iid.zzb).
Мое лучшее предположение, что это преступник. Если это действительно проблема, я не уверен, что делать с этим в стороне от stick до GCM. У кого-нибудь есть идеи или аналогичный опыт?
EDIT: у меня появилась возможность спросить одного из разработчиков Firebase об этой проблеме: https://www.reddit.com/r/androiddev/comments/4upj1o/beware_of_the_new_firebase/d5tdbk3 - Без разрешения. Я, вероятно, собираюсь избегать прямого впрыска и консолидироваться у поставщика статического API.