Android 在活动中注入时,演示者为空

Android 在活动中注入时,演示者为空,android,dagger-2,android-mvp,Android,Dagger 2,Android Mvp,我正在试用dagger2,想在活动中插入一个演示者,我在互联网上搜索了演示者为空的原因,但是我得到了不同的注入活动的实现,其中包含几个模块。有人能帮我理解我在尝试创建匕首依赖项时出错的地方吗 我定义了以下类: 活动组件类 @PerActivity @Component(modules = {ActivityModule.class}, dependencies = {AppComponent.class, GitHubComponent.class}) public interface Acti

我正在试用dagger2,想在活动中插入一个演示者,我在互联网上搜索了演示者为空的原因,但是我得到了不同的注入活动的实现,其中包含几个模块。有人能帮我理解我在尝试创建匕首依赖项时出错的地方吗

我定义了以下类:

活动组件类

@PerActivity
@Component(modules = {ActivityModule.class}, dependencies = {AppComponent.class, GitHubComponent.class})
public interface ActivityComponent {
    void inject(AppCompatActivity activity);
}
@Module
public class ActivityModule {
    private AppCompatActivity activity;

    public ActivityModule(AppCompatActivity activity) {
        this.activity = activity;
    }

    @Provides
    AppCompatActivity provideActivity() {
        return activity;
    }

    @Provides
    @PerActivity public MainView provideMainView() {
        return new MainViewImpl(activity);
    }

    @Provides
    @ActivityScope
    Context providesContext() {
        return activity;
    }

}
@Singleton
@Module
public class AppModule {
    private final GitHubApp application;

    public AppModule(final GitHubApp application) {
        this.application = application;
    }

    @Provides
    Application provideApplication() {
        return application;
    }

    @Provides
    public GitHubLog provideGithubLog() {
        return new GitHubLog();
    }
}
@Module
public class GitHubModule {
    @Provides
    public MainInteractor provideMainInteractor() {
        return new MainInteractorImpl();
    }

    @Provides
    @PerActivity
    public MainPresenter provideMainPresenter(){
        return new MainPresenterImpl();
    }
}
@Singleton
@Component(modules = AppModule.class)
public interface AppComponent {
    void inject(GitHubApp gitHubApp);

    void inject(GitHubLog gitHubLog);

    Application application();

    GitHubLog getGitHubLog();
}
@Component(modules = {GitHubModule.class, AppModule.class})
public interface GitHubComponent {
    void inject(MainPresenterImpl presenter);
}
public class GitHubApp extends Application {
    public static GitHubApp INSTANCE;
    private AppComponent appComponent;
    private GitHubComponent gitHubComponent;

    @Override
    public void onCreate() {
        super.onCreate();
        INSTANCE = this;
        getAppComponent().inject(this);
    }

    public AppComponent getAppComponent() {
        if (appComponent == null) {
            appComponent = DaggerAppComponent.builder()
                    .appModule(new AppModule(this))
                    .gitHubModule(new GitHubModule())
                    .build();
        }

        return appComponent;
    }

    public GitHubComponent getGitHubComponent() {
        if (gitHubComponent == null) {
            gitHubComponent = DaggerGitHubComponent.builder()
                    .gitHubModule(new GitHubModule())
                    .build();
        }
        return gitHubComponent;
    }
}
活动模块类

@PerActivity
@Component(modules = {ActivityModule.class}, dependencies = {AppComponent.class, GitHubComponent.class})
public interface ActivityComponent {
    void inject(AppCompatActivity activity);
}
@Module
public class ActivityModule {
    private AppCompatActivity activity;

    public ActivityModule(AppCompatActivity activity) {
        this.activity = activity;
    }

    @Provides
    AppCompatActivity provideActivity() {
        return activity;
    }

    @Provides
    @PerActivity public MainView provideMainView() {
        return new MainViewImpl(activity);
    }

    @Provides
    @ActivityScope
    Context providesContext() {
        return activity;
    }

}
@Singleton
@Module
public class AppModule {
    private final GitHubApp application;

    public AppModule(final GitHubApp application) {
        this.application = application;
    }

    @Provides
    Application provideApplication() {
        return application;
    }

    @Provides
    public GitHubLog provideGithubLog() {
        return new GitHubLog();
    }
}
@Module
public class GitHubModule {
    @Provides
    public MainInteractor provideMainInteractor() {
        return new MainInteractorImpl();
    }

    @Provides
    @PerActivity
    public MainPresenter provideMainPresenter(){
        return new MainPresenterImpl();
    }
}
@Singleton
@Component(modules = AppModule.class)
public interface AppComponent {
    void inject(GitHubApp gitHubApp);

    void inject(GitHubLog gitHubLog);

    Application application();

    GitHubLog getGitHubLog();
}
@Component(modules = {GitHubModule.class, AppModule.class})
public interface GitHubComponent {
    void inject(MainPresenterImpl presenter);
}
public class GitHubApp extends Application {
    public static GitHubApp INSTANCE;
    private AppComponent appComponent;
    private GitHubComponent gitHubComponent;

    @Override
    public void onCreate() {
        super.onCreate();
        INSTANCE = this;
        getAppComponent().inject(this);
    }

    public AppComponent getAppComponent() {
        if (appComponent == null) {
            appComponent = DaggerAppComponent.builder()
                    .appModule(new AppModule(this))
                    .gitHubModule(new GitHubModule())
                    .build();
        }

        return appComponent;
    }

    public GitHubComponent getGitHubComponent() {
        if (gitHubComponent == null) {
            gitHubComponent = DaggerGitHubComponent.builder()
                    .gitHubModule(new GitHubModule())
                    .build();
        }
        return gitHubComponent;
    }
}
AppModule.class

@PerActivity
@Component(modules = {ActivityModule.class}, dependencies = {AppComponent.class, GitHubComponent.class})
public interface ActivityComponent {
    void inject(AppCompatActivity activity);
}
@Module
public class ActivityModule {
    private AppCompatActivity activity;

    public ActivityModule(AppCompatActivity activity) {
        this.activity = activity;
    }

    @Provides
    AppCompatActivity provideActivity() {
        return activity;
    }

    @Provides
    @PerActivity public MainView provideMainView() {
        return new MainViewImpl(activity);
    }

    @Provides
    @ActivityScope
    Context providesContext() {
        return activity;
    }

}
@Singleton
@Module
public class AppModule {
    private final GitHubApp application;

    public AppModule(final GitHubApp application) {
        this.application = application;
    }

    @Provides
    Application provideApplication() {
        return application;
    }

    @Provides
    public GitHubLog provideGithubLog() {
        return new GitHubLog();
    }
}
@Module
public class GitHubModule {
    @Provides
    public MainInteractor provideMainInteractor() {
        return new MainInteractorImpl();
    }

    @Provides
    @PerActivity
    public MainPresenter provideMainPresenter(){
        return new MainPresenterImpl();
    }
}
@Singleton
@Component(modules = AppModule.class)
public interface AppComponent {
    void inject(GitHubApp gitHubApp);

    void inject(GitHubLog gitHubLog);

    Application application();

    GitHubLog getGitHubLog();
}
@Component(modules = {GitHubModule.class, AppModule.class})
public interface GitHubComponent {
    void inject(MainPresenterImpl presenter);
}
public class GitHubApp extends Application {
    public static GitHubApp INSTANCE;
    private AppComponent appComponent;
    private GitHubComponent gitHubComponent;

    @Override
    public void onCreate() {
        super.onCreate();
        INSTANCE = this;
        getAppComponent().inject(this);
    }

    public AppComponent getAppComponent() {
        if (appComponent == null) {
            appComponent = DaggerAppComponent.builder()
                    .appModule(new AppModule(this))
                    .gitHubModule(new GitHubModule())
                    .build();
        }

        return appComponent;
    }

    public GitHubComponent getGitHubComponent() {
        if (gitHubComponent == null) {
            gitHubComponent = DaggerGitHubComponent.builder()
                    .gitHubModule(new GitHubModule())
                    .build();
        }
        return gitHubComponent;
    }
}
GitHubModule.class

@PerActivity
@Component(modules = {ActivityModule.class}, dependencies = {AppComponent.class, GitHubComponent.class})
public interface ActivityComponent {
    void inject(AppCompatActivity activity);
}
@Module
public class ActivityModule {
    private AppCompatActivity activity;

    public ActivityModule(AppCompatActivity activity) {
        this.activity = activity;
    }

    @Provides
    AppCompatActivity provideActivity() {
        return activity;
    }

    @Provides
    @PerActivity public MainView provideMainView() {
        return new MainViewImpl(activity);
    }

    @Provides
    @ActivityScope
    Context providesContext() {
        return activity;
    }

}
@Singleton
@Module
public class AppModule {
    private final GitHubApp application;

    public AppModule(final GitHubApp application) {
        this.application = application;
    }

    @Provides
    Application provideApplication() {
        return application;
    }

    @Provides
    public GitHubLog provideGithubLog() {
        return new GitHubLog();
    }
}
@Module
public class GitHubModule {
    @Provides
    public MainInteractor provideMainInteractor() {
        return new MainInteractorImpl();
    }

    @Provides
    @PerActivity
    public MainPresenter provideMainPresenter(){
        return new MainPresenterImpl();
    }
}
@Singleton
@Component(modules = AppModule.class)
public interface AppComponent {
    void inject(GitHubApp gitHubApp);

    void inject(GitHubLog gitHubLog);

    Application application();

    GitHubLog getGitHubLog();
}
@Component(modules = {GitHubModule.class, AppModule.class})
public interface GitHubComponent {
    void inject(MainPresenterImpl presenter);
}
public class GitHubApp extends Application {
    public static GitHubApp INSTANCE;
    private AppComponent appComponent;
    private GitHubComponent gitHubComponent;

    @Override
    public void onCreate() {
        super.onCreate();
        INSTANCE = this;
        getAppComponent().inject(this);
    }

    public AppComponent getAppComponent() {
        if (appComponent == null) {
            appComponent = DaggerAppComponent.builder()
                    .appModule(new AppModule(this))
                    .gitHubModule(new GitHubModule())
                    .build();
        }

        return appComponent;
    }

    public GitHubComponent getGitHubComponent() {
        if (gitHubComponent == null) {
            gitHubComponent = DaggerGitHubComponent.builder()
                    .gitHubModule(new GitHubModule())
                    .build();
        }
        return gitHubComponent;
    }
}
AppComponent.class

@PerActivity
@Component(modules = {ActivityModule.class}, dependencies = {AppComponent.class, GitHubComponent.class})
public interface ActivityComponent {
    void inject(AppCompatActivity activity);
}
@Module
public class ActivityModule {
    private AppCompatActivity activity;

    public ActivityModule(AppCompatActivity activity) {
        this.activity = activity;
    }

    @Provides
    AppCompatActivity provideActivity() {
        return activity;
    }

    @Provides
    @PerActivity public MainView provideMainView() {
        return new MainViewImpl(activity);
    }

    @Provides
    @ActivityScope
    Context providesContext() {
        return activity;
    }

}
@Singleton
@Module
public class AppModule {
    private final GitHubApp application;

    public AppModule(final GitHubApp application) {
        this.application = application;
    }

    @Provides
    Application provideApplication() {
        return application;
    }

    @Provides
    public GitHubLog provideGithubLog() {
        return new GitHubLog();
    }
}
@Module
public class GitHubModule {
    @Provides
    public MainInteractor provideMainInteractor() {
        return new MainInteractorImpl();
    }

    @Provides
    @PerActivity
    public MainPresenter provideMainPresenter(){
        return new MainPresenterImpl();
    }
}
@Singleton
@Component(modules = AppModule.class)
public interface AppComponent {
    void inject(GitHubApp gitHubApp);

    void inject(GitHubLog gitHubLog);

    Application application();

    GitHubLog getGitHubLog();
}
@Component(modules = {GitHubModule.class, AppModule.class})
public interface GitHubComponent {
    void inject(MainPresenterImpl presenter);
}
public class GitHubApp extends Application {
    public static GitHubApp INSTANCE;
    private AppComponent appComponent;
    private GitHubComponent gitHubComponent;

    @Override
    public void onCreate() {
        super.onCreate();
        INSTANCE = this;
        getAppComponent().inject(this);
    }

    public AppComponent getAppComponent() {
        if (appComponent == null) {
            appComponent = DaggerAppComponent.builder()
                    .appModule(new AppModule(this))
                    .gitHubModule(new GitHubModule())
                    .build();
        }

        return appComponent;
    }

    public GitHubComponent getGitHubComponent() {
        if (gitHubComponent == null) {
            gitHubComponent = DaggerGitHubComponent.builder()
                    .gitHubModule(new GitHubModule())
                    .build();
        }
        return gitHubComponent;
    }
}
GithubComponent.class

@PerActivity
@Component(modules = {ActivityModule.class}, dependencies = {AppComponent.class, GitHubComponent.class})
public interface ActivityComponent {
    void inject(AppCompatActivity activity);
}
@Module
public class ActivityModule {
    private AppCompatActivity activity;

    public ActivityModule(AppCompatActivity activity) {
        this.activity = activity;
    }

    @Provides
    AppCompatActivity provideActivity() {
        return activity;
    }

    @Provides
    @PerActivity public MainView provideMainView() {
        return new MainViewImpl(activity);
    }

    @Provides
    @ActivityScope
    Context providesContext() {
        return activity;
    }

}
@Singleton
@Module
public class AppModule {
    private final GitHubApp application;

    public AppModule(final GitHubApp application) {
        this.application = application;
    }

    @Provides
    Application provideApplication() {
        return application;
    }

    @Provides
    public GitHubLog provideGithubLog() {
        return new GitHubLog();
    }
}
@Module
public class GitHubModule {
    @Provides
    public MainInteractor provideMainInteractor() {
        return new MainInteractorImpl();
    }

    @Provides
    @PerActivity
    public MainPresenter provideMainPresenter(){
        return new MainPresenterImpl();
    }
}
@Singleton
@Component(modules = AppModule.class)
public interface AppComponent {
    void inject(GitHubApp gitHubApp);

    void inject(GitHubLog gitHubLog);

    Application application();

    GitHubLog getGitHubLog();
}
@Component(modules = {GitHubModule.class, AppModule.class})
public interface GitHubComponent {
    void inject(MainPresenterImpl presenter);
}
public class GitHubApp extends Application {
    public static GitHubApp INSTANCE;
    private AppComponent appComponent;
    private GitHubComponent gitHubComponent;

    @Override
    public void onCreate() {
        super.onCreate();
        INSTANCE = this;
        getAppComponent().inject(this);
    }

    public AppComponent getAppComponent() {
        if (appComponent == null) {
            appComponent = DaggerAppComponent.builder()
                    .appModule(new AppModule(this))
                    .gitHubModule(new GitHubModule())
                    .build();
        }

        return appComponent;
    }

    public GitHubComponent getGitHubComponent() {
        if (gitHubComponent == null) {
            gitHubComponent = DaggerGitHubComponent.builder()
                    .gitHubModule(new GitHubModule())
                    .build();
        }
        return gitHubComponent;
    }
}
在application类中,我创建了一个
appcomponent
实例和
githubcomponent
实例,我在BaseActivity中使用它来创建
activitycomponent

我将presenter插入扩展BaseActivity的MainActivity中,得到一个null指针异常,表示presenter为null

我的实现不正确吗?我会错过什么

编辑: GithubApp.class

@PerActivity
@Component(modules = {ActivityModule.class}, dependencies = {AppComponent.class, GitHubComponent.class})
public interface ActivityComponent {
    void inject(AppCompatActivity activity);
}
@Module
public class ActivityModule {
    private AppCompatActivity activity;

    public ActivityModule(AppCompatActivity activity) {
        this.activity = activity;
    }

    @Provides
    AppCompatActivity provideActivity() {
        return activity;
    }

    @Provides
    @PerActivity public MainView provideMainView() {
        return new MainViewImpl(activity);
    }

    @Provides
    @ActivityScope
    Context providesContext() {
        return activity;
    }

}
@Singleton
@Module
public class AppModule {
    private final GitHubApp application;

    public AppModule(final GitHubApp application) {
        this.application = application;
    }

    @Provides
    Application provideApplication() {
        return application;
    }

    @Provides
    public GitHubLog provideGithubLog() {
        return new GitHubLog();
    }
}
@Module
public class GitHubModule {
    @Provides
    public MainInteractor provideMainInteractor() {
        return new MainInteractorImpl();
    }

    @Provides
    @PerActivity
    public MainPresenter provideMainPresenter(){
        return new MainPresenterImpl();
    }
}
@Singleton
@Component(modules = AppModule.class)
public interface AppComponent {
    void inject(GitHubApp gitHubApp);

    void inject(GitHubLog gitHubLog);

    Application application();

    GitHubLog getGitHubLog();
}
@Component(modules = {GitHubModule.class, AppModule.class})
public interface GitHubComponent {
    void inject(MainPresenterImpl presenter);
}
public class GitHubApp extends Application {
    public static GitHubApp INSTANCE;
    private AppComponent appComponent;
    private GitHubComponent gitHubComponent;

    @Override
    public void onCreate() {
        super.onCreate();
        INSTANCE = this;
        getAppComponent().inject(this);
    }

    public AppComponent getAppComponent() {
        if (appComponent == null) {
            appComponent = DaggerAppComponent.builder()
                    .appModule(new AppModule(this))
                    .gitHubModule(new GitHubModule())
                    .build();
        }

        return appComponent;
    }

    public GitHubComponent getGitHubComponent() {
        if (gitHubComponent == null) {
            gitHubComponent = DaggerGitHubComponent.builder()
                    .gitHubModule(new GitHubModule())
                    .build();
        }
        return gitHubComponent;
    }
}
我如何将演示者注入活动中,如下所示: BaseActivity.class有一个返回活动组件的方法

return DaggerActivityComponent.builder()
            .appComponent(((GitHubApp)getApplication()).getAppComponent())
            .gitHubComponent(((GitHubApp)getApplication()).getGitHubComponent())
            .activityModule(new ActivityModule(this))
            .build();
在MainActivity.class中,我这样使用它: 在调用
super.onCreate()
之前,调用
getActivityComponent().inject(this)

@注入 MainPresenter MainPresenter是变量声明

EDIT2:


Chisko和Muhammad Babar建议的更改是协同工作的,因为还需要将
inject(AppCompatActivity活动)
更改为
inject(MainActivity活动)

除了注释之外,我认为您还缺少其他设置:

GitHubApp.java

GitHubAppComponent component;

// call this inside onCreate()
private void setupComponent() {
    component = DaggerGitHubAppComponent.builder()
        .gitHubModule(new GitHubModule(this))
        .build();
}

public GitHubAppComponent getComponent() {
     return component;
}
abstract void setupComponent(GitHubAppComponent appComponent);

@Override
protected void onCreate(Bundle savedInstanceState) {
    ...
    GitHubApp app = (GitHubApp) getApplication();
    GutHubAppComponent component = app.getComponent();
    setupComponent(component);
}
@Override
protected void setupComponent(GitHubAppComponent appComponent) {
    ActivityComponent component = DaggerMainActivityComponent.builder()
        .gitHubAppComponent(appComponent)
        .activityModule(new ActivityModule(this))
        .build()
    component.inject(this);
}
以及活动组件,它需要在您创建的
BaseActivity
上使用抽象方法:

BaseActivity.java

GitHubAppComponent component;

// call this inside onCreate()
private void setupComponent() {
    component = DaggerGitHubAppComponent.builder()
        .gitHubModule(new GitHubModule(this))
        .build();
}

public GitHubAppComponent getComponent() {
     return component;
}
abstract void setupComponent(GitHubAppComponent appComponent);

@Override
protected void onCreate(Bundle savedInstanceState) {
    ...
    GitHubApp app = (GitHubApp) getApplication();
    GutHubAppComponent component = app.getComponent();
    setupComponent(component);
}
@Override
protected void setupComponent(GitHubAppComponent appComponent) {
    ActivityComponent component = DaggerMainActivityComponent.builder()
        .gitHubAppComponent(appComponent)
        .activityModule(new ActivityModule(this))
        .build()
    component.inject(this);
}
然后,您的活动还应创建组件:

MainActivity.java

GitHubAppComponent component;

// call this inside onCreate()
private void setupComponent() {
    component = DaggerGitHubAppComponent.builder()
        .gitHubModule(new GitHubModule(this))
        .build();
}

public GitHubAppComponent getComponent() {
     return component;
}
abstract void setupComponent(GitHubAppComponent appComponent);

@Override
protected void onCreate(Bundle savedInstanceState) {
    ...
    GitHubApp app = (GitHubApp) getApplication();
    GutHubAppComponent component = app.getComponent();
    setupComponent(component);
}
@Override
protected void setupComponent(GitHubAppComponent appComponent) {
    ActivityComponent component = DaggerMainActivityComponent.builder()
        .gitHubAppComponent(appComponent)
        .activityModule(new ActivityModule(this))
        .build()
    component.inject(this);
}

我知道这看起来像是a$$中的一个难题,但是一旦你掌握了Dagger,你就会发现它是多么的简单和方便。

除了注释之外,我认为你还缺少额外的设置:

GitHubApp.java

GitHubAppComponent component;

// call this inside onCreate()
private void setupComponent() {
    component = DaggerGitHubAppComponent.builder()
        .gitHubModule(new GitHubModule(this))
        .build();
}

public GitHubAppComponent getComponent() {
     return component;
}
abstract void setupComponent(GitHubAppComponent appComponent);

@Override
protected void onCreate(Bundle savedInstanceState) {
    ...
    GitHubApp app = (GitHubApp) getApplication();
    GutHubAppComponent component = app.getComponent();
    setupComponent(component);
}
@Override
protected void setupComponent(GitHubAppComponent appComponent) {
    ActivityComponent component = DaggerMainActivityComponent.builder()
        .gitHubAppComponent(appComponent)
        .activityModule(new ActivityModule(this))
        .build()
    component.inject(this);
}
以及活动组件,它需要在您创建的
BaseActivity
上使用抽象方法:

BaseActivity.java

GitHubAppComponent component;

// call this inside onCreate()
private void setupComponent() {
    component = DaggerGitHubAppComponent.builder()
        .gitHubModule(new GitHubModule(this))
        .build();
}

public GitHubAppComponent getComponent() {
     return component;
}
abstract void setupComponent(GitHubAppComponent appComponent);

@Override
protected void onCreate(Bundle savedInstanceState) {
    ...
    GitHubApp app = (GitHubApp) getApplication();
    GutHubAppComponent component = app.getComponent();
    setupComponent(component);
}
@Override
protected void setupComponent(GitHubAppComponent appComponent) {
    ActivityComponent component = DaggerMainActivityComponent.builder()
        .gitHubAppComponent(appComponent)
        .activityModule(new ActivityModule(this))
        .build()
    component.inject(this);
}
然后,您的活动还应创建组件:

MainActivity.java

GitHubAppComponent component;

// call this inside onCreate()
private void setupComponent() {
    component = DaggerGitHubAppComponent.builder()
        .gitHubModule(new GitHubModule(this))
        .build();
}

public GitHubAppComponent getComponent() {
     return component;
}
abstract void setupComponent(GitHubAppComponent appComponent);

@Override
protected void onCreate(Bundle savedInstanceState) {
    ...
    GitHubApp app = (GitHubApp) getApplication();
    GutHubAppComponent component = app.getComponent();
    setupComponent(component);
}
@Override
protected void setupComponent(GitHubAppComponent appComponent) {
    ActivityComponent component = DaggerMainActivityComponent.builder()
        .gitHubAppComponent(appComponent)
        .activityModule(new ActivityModule(this))
        .build()
    component.inject(this);
}


我知道这看起来像是a$$中的一个难题,但是一旦你掌握了匕首,你就会发现它是多么的简单和方便。

在你的活动组件中用
无效注入(AppCompatActivity活动)
替换活动组件中的
无效注入(MainActivity活动)

替换
无效注入(AppCompatActivity活动)
使用
无效注入(MainActivity活动)

发布您的GitHubApp类您的
ActivityComponent
还应该为演示者定义一个方法。类似于
MainPresenter presenter();
组件应该以抽象的方式反映模块的功能。我知道,这听起来是多余的。在
ActivityComponent中
replace
void inject(AppCompatActivity活动);
with
void inject(MainActivity活动)
并让我知道它是否有效。@MuhammadBabar,根据您建议的更改和下面的代码,它现在可以工作了..非常感谢..我如何在您和chisko之间共享点?发布您的GitHubApp类您的
ActivityComponent
还应该为演示者定义一个方法。类似于
MainPresenter presenter();
组件应该以抽象的方式反映模块的功能。我知道,这听起来是多余的。在
ActivityComponent中
replace
void inject(AppCompatActivity活动);
with
void inject(MainActivity活动)
,让我知道它是否有效。@MuhammadBabar,根据您建议的更改和下面的代码,它现在可以工作了。。非常感谢。。我如何在您和chisko之间共享点?但是,活动模块采用了一个this,这将指向活动,那么在GitHubApp.class中如何接受它?@Rat-a-tatatatouille更正了输入错误。这就是你的意思,对吗?
//在onCreate()私有void setupComponent()内调用此函数{component=DaggerGitHubAppComponent.builder().activityModule(新AppModule(this)).build();}public GitHubAppComponent getComponent(){return component;}
->我指的是这个,很抱歉,我想我不理解这一部分,我的意思是你需要在你的
GitubApp
类中调用
setupComponent()
内部
onCreate()
,所以
setupComponent
,有方法
activityModule(新的AppModule(这个))
,在当前代码库中,
AppModule
->它是
Acitivity模块
接受一个
活动
,而不是一个应用程序类,但是,活动模块接受一个指向该活动的标记,那么在GitHubApp.class中如何接受该标记?@Rat-a-tatatratatouille更正了输入错误。这就是你的意思对吗?
//在onCreate()私有void setupComponent()内部调用此函数{component=DaggerGitHubAppComponent.builder().activityModule(新AppModule(this)).build();}public GitHubAppComponent getComponent(){return component;}
->我指的是这个,很抱歉,我想我不理解这一部分,我的意思是你需要在你的
GitubApp
类中调用
setupComponent()
内部
onCreate()
,所以
setupComponent
,有方法
activityModule(新的AppModule(这个))
,在当前代码库中,
AppModule
->