Ich benutze Dolch 2 und habe es funktioniert, aber ich brauche jetzt Zugriff auf den Android Application Context.Dolch 2 injiziert Android-Kontext
Es ist mir nicht klar, wie zu injizieren und Zugriff auf den Kontext bekommen. Ich habe versucht, dies zu tun, wie folgt:
@Module
public class MainActivityModule {
private final Context context;
MainActivityModule(Context context) {
this.context = context;
}
@Provides @Singleton
Context provideContext() {
return context;
}
jedoch dies in der folgenden Ausnahme ergibt:
java.lang.RuntimeException: Kann Anwendung erstellen: java.lang.IllegalStateException: mainActivityModule muss sein set
Wenn ich den Dolch generierten Code diese Ausnahme inspizieren wird hier angesprochen:
public Graph build() {
if (mainActivityModule == null) {
throw new IllegalStateException("mainActivityModule must be set");
}
return new DaggerGraph(this);
}
Ich bin mir nicht sicher, ob dies der richtige Weg ist, Context injiziert zu bekommen - jede Hilfe wird sehr geschätzt.
Ich bin nicht sicher, ob die Injektion Anwendungskontext macht Sinn. Sie können die Application-Klasse erweitern und eine statische Instanz der Anwendung erstellen. Sie können es z.B. 'BaseApplication'. Danach können Sie die Methode 'get()' in Ihrer erweiterten Application-Klasse erstellen, die diese Instanz zurückgibt und gleichzeitig Application Context ist. Dann können Sie die folgende Konstruktion verwenden, um den Anwendungskontext von einer beliebigen Stelle in Ihrem Projekt zu erreichen: 'BaseApplication.get()'. Sie sollten es vorsichtig und nur dann verwenden, wenn es notwendig ist. –