2016-08-28 3 views
1

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

AppComponent имеет

void inject (AbcFirebaseInstanceIdService abcFirebaseInstanceIdService); 

И AbcFirebaseInstanceIdService имеет

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

ответ

6
com.google.dagger:dagger-compiler:2.0.2 

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

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

Увидев MikeNs код работал с более старой версией кинжала, заставил меня попробовать обновить кинжал версию 2.6 0,1. Тот же код, который ранее не компилировался, компилируется.

+0

Дни головной боли были решены путем простого обновления версии. –

0

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

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

Он не выполняет сборку проекта, как если бы я совершил ошибку при настройке инъекции зависимостей с помощью кинжала. D: \ ууу \\ приложение \ SRC \ главная \ Java \ apppathname \ App.java Ошибка: (14, 39) Ошибка: не удается найти класс символов DaggerApplicationComponent Я использую com.google.dagger: Кинжал-компилятор : 2.0.2 –

Смежные вопросы