首页 > 解决方案 > 错误:找不到符号方法注入(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);

提前致谢...

标签: androiddagger-2

解决方案


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

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

推荐阅读