Ich versuche, eine Anmerkung Prozessor zu schaffen, die meine MVP Ansichten verarbeiten (Fragmente) zu automatisch generierten Subkomponenten (ähnlich https://github.com/lukaspili/Auto-Dagger2, aber für die neuen Dagger 2.10 android Injektoren)Dagger 2.10 Subkomponente Generator - Injector Validierung fehlschlägt
Bisher habe ich in der Lage gewesen, entsprechende Dateien zu generieren, aber es ist eine seltsame Fehlermeldung, wenn
Error:(22, 58) error: @dagger.android.support.FragmentKey methods should bind dagger.android.AndroidInjector.Factory<? extends android.support.v4.app.Fragment>, not dagger.android.AndroidInjector.Factory<? extends android.support.v4.app.Fragment>. See google.github.io/dagger/android
Die Struktur des Werksmodul und Subkomponente Dateien erzeugt Komponenten Kompilieren sollte so schnell, weil richtig, wie ich die generierten Klassen copy-paste und eine regelmäßige Klassen (beide Werksmodul und Subkomponente) und verwenden echte Klassen statt erzeugt diejenigen erstellen, wird die Meldung nicht mehr angezeigt und Kompilierung erfolgreich
Es ist wie das Problem scheint liegt in AndroidMapKeyValidator
(link), wo !MoreTypes.equivalence().equivalent(returnType, intendedReturnType)
Anruf anscheinend nicht, aber ich habe nicht viel von einer Erfahrung Debug-Annotation-Prozessoren, so dass ich weiß nicht genau, warum ...
Kann vielleicht jemand helfen, wo man nach dem Problem sucht? Dank
FYI: MyFragment
hat android.support.v4.app.Fragment
Meine Dateien erweitern:
generiert Fabrik @Module public interface BuildersModule { @Binds @IntoMap @FragmentKey(MyFragment.class) abstract AndroidInjector.Factory<? extends Fragment> factory(MySubcomponent.Builder builder); }
generiert Subkomponente @Subcomponent(modules = MyModule.class) public interface MySubcomponent extends AndroidInjector<MyFragment> { MyPresenter presenter(); @Subcomponent.Builder abstract class Builder extends AndroidInjector.Builder<MyFragment> {} }
@ Ich kann Ihnen nicht helfen, aber ich bin an Ihrer Lösung interessiert. Würden Sie eine Open-Source-Lösung in Erwägung ziehen, wenn Sie es zum Laufen bringen? –
@ScottCooper sicher, es ist geplant als Teil des AMF-Projekts Ich arbeite an https: // github.com/Team-SOFTsk/AMF – doodeec
ein kleines Update, das Problem hier auf Debuggen https://github.com/google/dagger/issues/689 – doodeec