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();
}
}