相关疑难解决方法(0)

Dagger 2注入Android Context

我正在使用Dagger 2并使其工作,但我现在需要访问Android应用程序上下文.

我不清楚如何注入和访问上下文.我试过这样做如下:

@Module
public class MainActivityModule {    
    private final Context context;

    MainActivityModule(Context context) {
        this.context = context;
    }

@Provides @Singleton
Context provideContext() {
    return context;
}
Run Code Online (Sandbox Code Playgroud)

但是,这会导致以下异常:

java.lang.RuntimeException:无法创建应用程序:java.lang.IllegalStateException:必须设置mainActivityModule

如果我检查Dagger生成的代码,则会在此处引发此异常:

public Graph build() {  
    if (mainActivityModule == null) {
        throw new IllegalStateException("mainActivityModule must be set");
    }
    return new DaggerGraph(this);
}
Run Code Online (Sandbox Code Playgroud)

我不确定这是否是注入Context的正确方法 - 任何帮助将不胜感激.

android dependency-injection android-context dagger-2

30
推荐指数
4
解决办法
3万
查看次数