android - 错误:找不到符号方法注入(TestApplication)
问题描述
我是 Dagger 2 的新手。为了开始使用它,我编写了一些代码。构建代码后,我遇到了以下异常
error: cannot find symbol method inject(TestApplication)
我刚刚编码的类如下:
MainActivitySubComponent.class 作为子组件
@Subcomponent()
public interface MainActivitySubComponent extends AndroidInjector<MainActivity>{
@Subcomponent.Builder
abstract class Builder extends AndroidInjector.Builder<MainActivity>{
}
}
MyModules.class 作为我的模块
@Module(subcomponents = MainActivitySubComponent.class)
public abstract class MyModules {
@Binds
@IntoMap
@ActivityKey(MainActivity.class)
abstract AndroidInjector.Factory<? extends Activity> bindActivityInjector(MainActivitySubComponent.Builder builder);
}
MainActivityComponent.class 作为我的组件
@Component(modules = {MyModules.class})
public interface MainActivityComponent {
}
安卓应用程序代码
public class TestApplication extends Application implements HasActivityInjector{
@Inject
DispatchingAndroidInjector<Activity> activityDispatchingAndroidInjector;
@Override
public void onCreate() {
super.onCreate();
DaggerMainActivityComponent.create().inject(this);
}
@Override
public AndroidInjector<Activity> activityInjector() {
return activityDispatchingAndroidInjector;
}
}
无法识别下一行中的 inject() 方法
DaggerMainActivityComponent.create().inject(this);
提前致谢...
解决方案
我认为您需要像这样在组件中添加注入功能
@Component(modules = {MyModules.class})
public interface MainActivityComponent {
void inject(TestApplication test);
}