Android Dagger и Firebase

Я использую инъекцию зависимости Dagger. Обычно он работает нормально, но когда я использую его для внедрения компонента в класс, который расширяет FirebaseInstanceIdService, он терпит неудачу при сборке. Есть ли что-то особенное в FirebaseInstanceIdService, которое мешает мне сделать инъекцию, или есть что-то, что мне нужно сделать, чтобы заставить его работать. Я не пытаюсь внедрить экземпляр FirebaseInstanceIdService в любом месте, просто внедрить в него зависимость

AppComponent имеет

void inject (AbcFirebaseInstanceIdService abcFirebaseInstanceIdService);

И AbcFirebaseInstanceIdService имеет

public void inject(ApplicationComponent appComponent) {
        appComponent.inject(this);
    }

2 ответа

Решение
com.google.dagger:dagger-compiler:2.0.2 

не похоже на работу с

com.firebase:firebase-client-android:2.3.1. 

Увидев, что код MikeNs работает с более старой версией кинжала, я попытался обновить свою версию кинжала до версии 2.6.1. Тот же код, который раньше не компилировался, теперь компилируется.

Какую ошибку вы получаете. Это работает в нашей кодовой базе

public class NYTFirebaseInstanceIDService extends FirebaseInstanceIdService {
      @Inject Lazy<Foo> foo;

    @Override
    public void onCreate() {
        super.onCreate();
        buildObjectGraphAndInject();
    }

    private void buildObjectGraphAndInject() {
        getComponent().inject(this);
    }

    protected Component getComponent() {
        return ComponentFactory().create();
    }
}
Другие вопросы по тегам