"Führen Sie den Dolchprozessor lieber über diese Klasse aus" in Kotlin


124

Ich bekomme diese Notiz im Build, wenn ich eine Injektion in eine Kotlin-Klasse mache (übrigens habe ich ein gemischtes Android-Projekt mit Kotlin und Java).

Zum Beispiel compileStagingDebugJavaWithJavacerhalte ich nach dieser Gradle-Aufgabe: (StagingDebug ist meine Build-Variante) die folgende Meldung:

"Hinweis: Generieren eines MembersInjector oder einer Factory für com.packageNameXXX.CourseDiscoveryMapFragment. Führen Sie den Dolchprozessor lieber über diese Klasse aus."

Mein CourseDiscoveryMapFragment- Code ist hier zu sehen:

class CourseDiscoveryMapFragment : Fragment(){

    @Inject
    lateinit var presenter: CourseDiscoveryMapPresenter

    lateinit var mapView: MapView

    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {

        val view = inflater.inflate(R.layout.fragment_discovery_map, container, false)

        MapsInitializer.initialize(activity)

        mapView = view.mapView
        mapView.onCreate(savedInstanceState?.getBundle(BUNDLE_KEY_MAP_STATE))

        (activity as BaseActivity)
                .activityComponent.inject(this)
}

Und meine ActivityComponent ist:

@ActivityScope
@Subcomponent(modules = ActivityModule.class)
public interface ActivityComponent {

    void inject(BaseActivity baseActivity);

    void inject(CourseDiscoveryMapFragment fragment);

    //Exposed to sub-graphs.
    Activity activity();
}

Also habe ich Dolchkomponenten und -module in Java geschrieben, während ich Dolchinjektionen in Kotlin habe.

Ist das etwas, worüber ich mir Sorgen machen sollte?

Danke dir.


Können Sie den gesamten Fehler / die Warnung und auch den dazugehörigen Code posten?
Marcospereira

4
Die Frage braucht mehr Details. Sie haben im Grunde eine Google-Abfrage als Frage geschrieben.
Jayson Minard

@marcospereira Überarbeitet! Vielen Dank!
Fábio Carballo

4
Hey, hast du eine Lösung gefunden oder vielleicht einen Grund für diese Warnung?
wojciech_maciejewski

Antworten:


5

Ich fürchte, du kannst nicht. Warum nicht Abhängigkeitsmodule in Kotlin schreiben?

Um Abhängigkeitsmodule in Java zu schreiben, müssen Sie Ihr Gradle-Skript folgendermaßen konfigurieren:

 compile 'com.google.dagger:dagger:2.8'
 apt 'com.google.dagger:dagger-compiler:2.8'

Um jedoch Abhängigkeitsmodule in Kotlin zu schreiben, sollten Sie Ihr Gradle-Skript folgendermaßen konfigurieren:

compile 'com.google.dagger:dagger:2.8' 
kapt 'com.google.dagger:dagger-compiler:2.8'

Dolch benötigt das Anmerkungsverarbeitungswerkzeug, um den Abhängigkeitscode während des Kompilierungsprozesses zu generieren. Ich denke, Sie müssen nur das richtige APT (Annotation Processing Tool) entsprechend der richtigen Sprache verwenden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.