2014-01-05 57 views
9

我試圖將Dagger整合到我的應用程序中。我遇到了一個問題。我在運行時收到此錯誤:匕首 - 類沒有注射成員

java.lang.IllegalStateException: Errors creating object graph: 
    com.app.NavigationController has no injectable members. Do you want to add an injectable constructor? required by class com.app.fragments.LoginFragment 

我試圖尋找到其他類似的答案,但沒有任何幫助了我那麼遠,

以圖構建相關的一切都實現非常像在Android Activity Graphs例。

我有兩個模塊ActivityModuleApplicationModule

@Module(
     includes = ApplicationModule.class, 
     injects = { 
       MainActivity.class, 
       LoginFragment.class 
     } 
) 
public class ActivityModule { 

    private BaseActivity activity; 

    public ActivityModule(BaseActivity activity) { 
     this.activity = activity; 
    } 

    @Provides 
    @Singleton 
    NavigationController provideNavigation() { 
     return new NavigationController(activity); 
    } 
} 

而另一

@Module(
    injects = { 
      MainActivity.class, 
      LoginFragment.class}, 
    complete = false 
) 
public class ApplicationModule { 

    private Context context; 

    public ApplicationModule(Context context) { 
     this.context = context; 
    } 

    @Provides 
    @Singleton 
    ApiService provideApiService() { 
     .... 
     return restAdapter.create(ApiService.class); 
    } 
} 

我在做什麼錯?

UPDATE:
中添加更多細節:

片段:

public class LoginFragment extends BaseFragment { 

    //... 

    @Inject 
    NavigationController navigation; 

    //... 

導航控制器:

public class NavigationController { 

//... 

public NavigationController(BaseActivity activity) { 
    this.activity = activity; 
} 

//... 
} 
+0

你有'@在LoginFrag中注入已註釋的成員ment'? –

+0

是的,我喜歡。我已經更新了我的問題。 –

+0

如果你只是刪除不完整模塊中的'inject'部分 –

回答