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 アクティビティ グラフの例とほとんど同じように実装されています。
と の 2 つのモジュールがActivityModule
ありApplicationModule
ます。
@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);
}
}
私は何を間違っていますか?
更新:
詳細を追加:
断片:
public class LoginFragment extends BaseFragment {
//...
@Inject
NavigationController navigation;
//...
ナビゲーション コントローラ:
public class NavigationController {
//...
public NavigationController(BaseActivity activity) {
this.activity = activity;
}
//...
}