我正在尝试将 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示例中的实现。
我有两个模块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;
}
//...
}