Plugin [id: ‘dagger.hilt.android.plugin’] wurde in keiner der folgenden Quellen gefunden
Lesezeit: 7 Minuten
Ich erhalte die folgende Warnung, wenn ich @AndroidEntryPoint verwenden möchte, das eine Eigenschaft von hilt in meinem Projekt ist.
Expected @AndroidEntryPoint to have a value. Did you forget to apply the Gradle Plugin? (dagger.hilt.android.plugin)
Wenn ich versuche, die ID „dagger.hilt.android.plugin“ zur build.gradle-Datei auf Modulebene meines Projekts hinzuzufügen, erhalte ich die folgende Fehlermeldung.
org.gradle.api.plugins.UnknownPluginException: Plugin [id: 'dagger.hilt.android.plugin'] was not found in any of the following sources:
Ich habe versucht, es wie folgt zur Datei build.gradle auf Modulebene des Projekts hinzuzufügen. Sie geben alle einen Fehler aus.
Ich habe versucht, es als Klassenpfad zur build.gradle-Datei auf Projektebene hinzuzufügen, in diesem Fall erhalte ich immer noch eine Fehlermeldung.
Als ich das Standardprojekt erstellt habe, wurde eine settings.gradle-Struktur wie folgt erstellt. Dies ist das erste Mal, dass ich diesen Build verwende. Meine Version von Android Studio Android Studio – Bumblebee | 2021.1.1 Kanarienvogel 13
Ich bin zu spät für die Antwort. Ich hatte auch das gleiche Problem in Android Studio Bumblebee wegen der neuen Gradle-Syntax zum Hinzufügen von Abhängigkeiten auf Projektebene.
Um Dolchgriff auf Projektebene hinzuzufügen, können Sie die folgende Syntax verwenden:
id 'com.google.dagger.hilt.android' version '2.41' apply false
Zum Zeitpunkt der Erstellung dieses Artikels ist die neueste Version 2.41. Es ist in mavenCentral-Repository.
Schön, mein Problem war gelöst
– Duong.Nguyen
26. März um 6:14 Uhr
Dies löste auch mein Problem. Zuerst habe ich das versucht: id(“dagger.hilt.android.plugin”) und es hat nicht funktioniert. Vielen Dank
– CAM-Entw
5. Mai um 18:55 Uhr
Wichtig ist die Versionsnummer. Anfangs hatte ich ‘2.40.5’ und es hat nicht funktioniert. Das Ändern auf ‘2.41’ hat es gelöst.
– jagenka
7. Mai um 13:31 Uhr
Nach langem Kampf habe ich das Problem wie folgt gelöst;
Ich habe ein hinzugefügt AuflösungStrategie zu settings.gradle wie nachstehend.
Dann, als ich das Hilt-Plugin wie folgt zur Modulebene hinzufügte build.gradle Datei wurde sie korrekt aktualisiert.
plugins{
...
id 'dagger.hilt.android.plugin'
}
Aber wieso? Ich habe es nicht hinzugefügt und kann Hilt immer noch verwenden. Dieser Fehler tritt (in meinem Fall) nur auf, wenn ich root konvertiere build.gradle zu build.gradle.kts. Nur ein paar zufällige Dinge auszuprobieren und hier mit einer zufälligen Methode einzufügen, die zufällig funktioniert hat, hilft nicht bei einem falschen Lauf
– AndroidEngineX
2. Januar um 10:34 Uhr
@AtulGupta In meinem Fall hat die letzte Version von Gradle Definitionen in settings.gradle vorgenommen. Da classpath nicht wie build.gradle auf Projektebene in settings.gradle angegeben werden kann, habe ich es mit dieser Methode gelöst.
– Hasan Kucuk
2. Januar um 11:17 Uhr
Ja, stimme zu … Dass diese bestimmte Zeichenfolgensequenz Ihr Problem definitiv gelöst hat, aber die Grundursache eindeutig nicht erklärt wird
– AndroidEngineX
2. Januar um 12:57 Uhr
Ich habe auch meine Antwort hinzugefügt, die erklärt, warum diese Konfiguration erforderlich ist
– AndroidEngineX
2. Januar um 13:17 Uhr
Vielen Dank! Ich habe die letzten 2 Stunden damit verbracht, die Abhängigkeit zum Laufen zu bringen. Deine Lösung hat perfekt funktioniert! 🙂
– Oliver
27. April um 9:10 Uhr
Zum Hinzufügen dagger hilt zu Ihrem Projekt. Folge diesen Schritten
Hinzufügen hilt Abhängigkeiten zu Ihrem Modul build.gradle. Ich nehme an, Sie verwenden Kotlinsonst müssen Sie verwenden annotationProcessor anstelle von kapt Plugin.
plugin{} Block in der Wurzel build.gradle wird verwendet, um die Gradle-Plugins zu definieren, die auf root angewendet werden können build.gradle und alle (oder einige) der Gradle-Unterprojekte.
Der Eine Vorbehalt Die Verwendung des Plugin-Blocks besteht darin, dass er nur das Plugin auflöst, das in vorhanden ist Gradle-Plugin-Portal(sehen Dok) oder benutzerdefinierte Maven- und Ivy-Plugin-Repositories müssen zusätzlich zu den Artefakten, die das Plugin tatsächlich implementieren, Plugin-Marker-Artefakte enthalten (siehe Dok). Im Fall des Android-Gradle-Plugins und des Hilt-Plugins haben sie diese Plugins nicht veröffentlicht Gradle-Plugin-Portal und sie haben ihre auch nicht veröffentlicht Plugin-Marker-Artefakte
Aufgrund der oben fehlenden Plugin-Marker-Artefakte Sie müssen das Plugin mithilfe von manuell auflösen Plugin-Auflösungsregeln bei settings.gradle indem Sie den folgenden Code hinzufügen (dies ist spezifisch für das Hilt Gradle-Plugin, für andere müssen Sie andere überprüfen requested.id.id)
pluginManagement {
repositories {
// Your repo from where Gradle will search for Gradle plugins
}
plugins {
// ...
}
resolutionStrategy {
eachPlugin {
if(requested.id.id == 'dagger.hilt.android.plugin') {
useModule("com.google.dagger:hilt-android-gradle-plugin:${requested.version}")
}
}
}
}
Sie müssen dies nur zur root build.gradle-Datei des Projekts hinzufügen.
buildscript {
repositories {
// other repositories...
mavenCentral()
}
dependencies {
// other plugins...
classpath 'com.google.dagger:hilt-android-gradle-plugin:2.40'
}
}
Dies ist die richtige Lösung, Sie brauchen nicht all das Zeug, das Ihnen von AndroidEngineX gesagt wird, die Dokumentation ist hier dagger.dev/hilt/gradle-setup.html
– D76X
12. Januar um 7:39 Uhr
@ D76X Dies ist eine ältere Methode. Im neuesten Android-Studio müssen Sie dies so tun, wie es AndroidEngineX und andere vorgeschlagen haben.
– Chirag Savsani
4. Februar um 12:33 Uhr
Samad Talukder
Ich hatte das gleiche Problem, ich habe das Problem wie folgt gelöst:
Fügen Sie zuerst die hinzu com.google.dagger.hilt.android Plugin in die root build.gradle-Datei Ihres Projekts:
plugins {
id 'com.android.application' version '7.2.0' apply false
id 'com.android.library' version '7.2.0' apply false
id 'com.google.dagger.hilt.android' version '2.42' apply false
id 'org.jetbrains.kotlin.android' version '1.6.0' apply false
}
task clean(type: Delete) {
delete rootProject.buildDir
}
Wenden Sie dann das Gradle-Plugin an und fügen Sie diese Abhängigkeiten in Ihrer app/build.gradle-Datei hinzu:
plugins {
id 'com.android.application'
id 'org.jetbrains.kotlin.android'
id 'kotlin-kapt'
id 'com.google.dagger.hilt.android'
}
android {
....................
// Enable java 8
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget="1.8"
}
}
dependencies {
implementation 'com.google.dagger:hilt-android:2.38.1'
kapt 'com.google.dagger:hilt-android-compiler:2.38.1'
}
Dies ist die richtige Lösung, Sie brauchen nicht all das Zeug, das Ihnen von AndroidEngineX gesagt wird, die Dokumentation ist hier dagger.dev/hilt/gradle-setup.html
– D76X
12. Januar um 7:39 Uhr
@ D76X Dies ist eine ältere Methode. Im neuesten Android-Studio müssen Sie dies so tun, wie es AndroidEngineX und andere vorgeschlagen haben.
– Chirag Savsani
4. Februar um 12:33 Uhr
Mohammed Muddasir
Verwenden Sie diese Konfiguration in Gradle Root
plugins {
id 'com.android.application' version '7.2.0' apply false
id 'com.android.library' version '7.2.0' apply false
id 'org.jetbrains.kotlin.android' version '1.6.21' apply false
id 'com.google.dagger.hilt.android' version '2.42' apply false
}
task clean(type: Delete) {
delete rootProject.buildDir
}