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.

Geben Sie hier die Bildbeschreibung ein

Ich habe versucht, es als Klassenpfad zur build.gradle-Datei auf Projektebene hinzuzufügen, in diesem Fall erhalte ich immer noch eine Fehlermeldung.

Geben Sie hier die Bildbeschreibung ein

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

Geben Sie hier die Bildbeschreibung ein

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.

 pluginManagement {
        repositories {...}
        plugins { ...}
     resolutionStrategy {
            eachPlugin {
                if( requested.id.id == 'dagger.hilt.android.plugin') {
                    useModule("com.google.dagger:hilt-android-gradle-plugin:2.39.1")
                }
            }
        }
    }

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.

dependencies {
  //..
  implementation 'com.google.dagger:hilt-android:2.39.1'
  kapt 'com.google.dagger:hilt-compiler:2.39.1'
  //..
   }

Hinzufügen hilt gradle plugin zu Projekt build.gradle.

dependencies {
    //..
    classpath 'com.google.dagger:hilt-android-gradle-plugin:2.39.1'
  }

Sich bewerben kotlin-kapt und hilt Plugins zum Modul build.gradle

plugins {
    id 'kotlin-kapt'
    id 'dagger.hilt.android.plugin'
}

  • In der neuesten Version von Gradle kann ich dies nicht wie bei der klassischen Methode tun.

    – Hasan Kucuk

    10. Oktober 2021 um 9:27 Uhr

  • Welche Version verwenden Sie?

    – Praveen

    10. Oktober 2021 um 13:20 Uhr

  • Sind Sie sicher, dass Version 2.39.1 von Dolchgriff wirklich verfügbar ist? Zum Zeitpunkt des Schreibens dieses Kommentars ist 2.31-Alpha verfügbar.

    – Gopal Singh Sirvi

    2. Februar um 7:54


  • @GopalSinghSirvi Derzeit ist die neueste Version des Griffs 2.40.5 das am 7. Dezember 2021 veröffentlicht wurde. github.com/google/dagger/releases/tag/dagger-2.40.5

    – Praveen

    2. Februar um 8:40 Uhr

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

Benutzeravatar von Samad Talukder
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

Benutzeravatar von Mohammad Muddasir
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
         }

und in der 2. Klasse Datei

   plugins {    id 'com.android.application'    id 
   'org.jetbrains.kotlin.android'    id 'kotlin-kapt'    id 
   'com.google.dagger.hilt.android' }
   android {    compileSdk 32
   defaultConfig {
   applicationId "com.example.hilttest"
   minSdk 21
   targetSdk 32
   versionCode 1
   versionName "1.0"

   testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"    }
   buildTypes {
   release {
       minifyEnabled false
       proguardFiles getDefaultProguardFile('proguard-android- 
   optimize.txt'),    'proguard-rules.pro'
   }    }    compileOptions {
   sourceCompatibility JavaVersion.VERSION_1_8
   targetCompatibility JavaVersion.VERSION_1_8    }    kotlinOptions {
   jvmTarget="1.8"    } }
   dependencies {
   implementation 'androidx.core:core-ktx:1.7.0'    implementation 
   'androidx.appcompat:appcompat:1.4.1'    implementation 
     `enter code here`'com.google.android.material:material:1.6.0'    implementation 'androidx.constraintlayout:constraintlayout:2.1.4'    testImplementation 'junit:junit:4.13.2'    androidTestImplementation 'androidx.test.ext:junit:1.1.3'    androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'    implementation 'com.google.dagger:hilt-android:2.42'    kapt 'com.google.dagger:hilt-compiler:2.42'
   // For instrumentation tests    androidTestImplementation  'com.google.dagger:hilt-android-testing:2.42'    kaptAndroidTest 'com.google.dagger:hilt-compiler:2.42'
   // For local unit tests    testImplementation 'com.google.dagger:hilt-android-testing:2.42'    kaptTest 'com.google.dagger:hilt-compiler:2.42' } kapt {    correctErrorTypes = true }

1432010cookie-checkPlugin [id: ‘dagger.hilt.android.plugin’] wurde in keiner der folgenden Quellen gefunden

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy