2016-05-31 31 views
1

當添加依賴/子組件時,我遇到了Dagger 2的一個問題,它將使我無法找到DaggerAppComponent/DaggerBComponent/DaggerCComponent的find符號類。Dagger 2:在使用子組件/相關組件時找不到符號類

的組件,如:

public class ApplicationComponent { 
@Singleton 
@Component(modules= {...}) 
public interface AppComponent { 
    SomeManager someManager(); 
    void inject(Application application); 
} 
} 

@UserScope 
@Component(modules = {...}, dependencies = ApplicationComponent.AppComponent.class) 
public interface BComponent{ 
    CComponent plus (AModule aModule, BModule bModule); 
    void inject (SomeActivity someActivity); 
} 

@PerFragment 
@Subcomponent (modules = {AModule.class,BModule.class}) 
public interface CComponent { 
    void inject (SomeFragment someFragment); 
} 

每當我加方法添加到BComponent,我得到的錯誤找不到每當我試圖建立匕首生成的類的所有3個符號類。如果我註釋出加法,它確實會生成。有什麼我做錯了嗎?

+0

是什麼版本Dagger2的你在用嗎? – EpicPandaForce

+0

Dagger 2.2編譯器,Dagger 2.2,帶有jsr250批註依賴項。 – hakuteru

+0

我不知道是否更新到Dagger 2.4會修復它,雖然有可能你必須添加'apt'com.google.guava:guava:19.0''才能正常工作 – EpicPandaForce

回答

1

我都面臨着同樣的問題時,子組件庫中的項目,我忘了這行庫/的build.gradle

apply plugin: 'com.android.library' 
apply plugin: 'com.neenbedankt.android-apt' 
... 
... 
dependencies { 
    ... 
    apt 'com.google.dagger:dagger-compiler:2.5' 
} 

希望這將幫助你

相關問題