代码之家  ›  专栏  ›  技术社区  ›  Mahdi Rajabi

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

  •  0
  • Mahdi Rajabi  · 技术社区  · 7 年前

    我对匕首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 {
    }
    

    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 回复  |  直到 7 年前
        1
  •  0
  •   Mohammad Rbabah    7 年前

    我认为您需要在组件中添加注入函数,如下所示

    @Component(modules = {MyModules.class})
    public interface MainActivityComponent {
    void inject(TestApplication test);
    }
    
        2
  •  0
  •   Mahdi Rajabi    7 年前

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

    void inject(Application test);
    

    而不是

    void inject(TestApplication test);