Ich versuche, ein Projekt mit Dolch einzurichten. Gerade jetzt, wenn ich bauen, keines der Dagger * Klassen werden für die Komponenten erzeugt wird, und ich bin immer folgende Fehler:Dolch wird keine Dolch-Klassen für Android generieren
Error:(10, 8) error: [com.redditapp.dagger.RedditAppGraph.inject(com.redditapp.RedditApplication)]
com.redditapp.ui.ActivityHierarchyServer cannot be provided without an @Provides- or @Produces-annotated method.
com.redditapp.ui.ActivityHierarchyServer is injected at
com.redditapp.RedditApplication.activityHierarchyServer
com.redditapp.RedditApplication is injected at
com.redditapp.dagger.RedditAppGraph.inject(app)
und
Error:(13, 10) error: com.redditapp.base.navigation.activity.ActivityScreenSwitcher cannot be provided without an @Inject constructor or from an @Provides-annotated method.
com.redditapp.base.navigation.activity.ActivityScreenSwitcher is injected at
com.redditapp.ui.screens.home.HomePresenter.<init>(screenSwitcher)
com.redditapp.ui.screens.home.HomePresenter is injected at
com.redditapp.ui.screens.home.HomeActivity.presenter
com.redditapp.ui.screens.home.HomeActivity is injected at
com.redditapp.ui.screens.home.HomeComponent.inject(activity)
Hier ist meine aktuelle Setup.
Anwendungsebene Klasse verwendet:
public void buildComponentAndInject() {
component = RedditAppComponent.Initializer.init(this);
component.inject(this);
}
Die RedditAppComponent wie folgt aussieht und DaggerRedditAppComponent nicht erzeugt wird und deshalb ist rot:
@ApplicationScope
@Component(modules = { RedditAppModule.class, UiModule.class})
public interface RedditAppComponent extends RedditAppGraph {
/**
* An initializer that creates the graph from an application.
*/
final class Initializer {
public static RedditAppComponent init(RedditApplication app) {
return DaggerRedditAppComponent.builder()
.redditAppModule(new RedditAppModule(app))
.uiModule(new UiModule())
.build();
}
private Initializer() {} // No instances.
}
}
Mit einer übergeordneten Klasse RedditAppGraph:
public interface RedditAppGraph {
void inject(RedditApplication app);
ViewContainer viewContainer();
ActivityHierarchyServer activityHierarchyServer();
}
Das UI-Modul, das die Anbietermethoden enthält, die ausgelöst werden Der Fehler sieht wie folgt aus:
Ich habe versucht, das Projekt neu zu erstellen, um zu sehen, ob es die Klassen generiert.
Wenden Sie den Compiler an? hast du etwas von der Art in deinem Buildgrandle '' apt' 'com.google.dagger: dagger-compiler: 2.8 "' '? – Fred
tue ich, aber anstelle von Apt verwende ich AnnotationProcessor. – AggieDev