错误:找不到符号方法注入(TestApplication)

时间:2018-08-19 11:16:22

标签: android dagger-2

我完全不熟悉Dagger2。为了开始使用它,我已经编写了一些代码。构建代码后,我遇到了以下异常

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

@Component(modules = {MyModules.class})
public interface MainActivityComponent {
}

Android应用程序代码

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);

提前谢谢...

2 个答案:

答案 0 :(得分:0)

我认为您需要像这样在组件内部添加注入功能

@Component(modules = {MyModules.class})
public interface MainActivityComponent {
void inject(TestApplication test);
}

答案 1 :(得分:0)

我找到了答案。我必须使用

void inject(Application test);

代替

void inject(TestApplication test);

现在它可以正常工作