Плагин Hilt Android Gradle применен, но не обнаружена зависимость com.google.dagger:hilt-android-compiler

Я получаю сообщение об ошибке "Плагин Hilt Android Gradle применен, но нет com.google.dagger:hilt-android-compiler обнаружена зависимость."при построении проекта.

Вот как я добавляю эфес в свой проект.

https://stackru.co m/im ages/89fe54ce8c001301588bdb22136c9e6bbf03450d.png

https://stackru.co m/im ages/123e87952df9b1c8793ddae236337b19dab307be.png

https://stackru.co m/im ages/de1588e348e3285fe34a879cdbdc44026d9d5292.png

https://stackru.co m/im ages/c970ab7bf4058cf34fc5446af3595f7c2cd6b288.png

12 ответов

Решение

Я думаю, тебе не хватает этой зависимости

kapt "com.google.dagger:hilt-android-compiler:2.28-alpha"

* Сначала добавьте плагин

apply plugin: 'dagger.hilt.android.plugin'

* Во-вторых, добавляем зависимости

 // Dagger Core
    implementation "com.google.dagger:dagger:2.28"
    kapt "com.google.dagger:dagger-compiler:2.28"

    // Dagger Android
    api 'com.google.dagger:dagger-android:2.27'
    api 'com.google.dagger:dagger-android-support:2.27'
    kapt 'com.google.dagger:dagger-android-processor:2.27'

//Dagger - Hilt
    implementation "com.google.dagger:hilt-android:2.28-alpha"
    kapt "com.google.dagger:hilt-android-compiler:2.28-alpha"

* В-третьих, добавьте путь к классам

classpath "com.google.dagger:hilt-android-gradle-plugin:2.28-alpha"

PS: если вы используете java, замените kapt на annotationProcessor

Моя проблема заключалась в том, что я использовал неправильный синтаксис зависимостей при попытке добавить зависимость Hilt в корень. build.gradleв проекте с использованием нового синтаксиса Gradle id 'pluginId' version 'pluginVersion»' [apply false]

Вместо

      buildscript {
    ...
    dependencies {
        ....
        classpath 'com.google.dagger:hilt-android-gradle-plugin:2.41'
    }
}

я использовал

      plugins {
    ...
    id 'com.google.dagger.hilt.android' version '2.41' apply false
}

В моем случае вы используете эту зависимость компилятора:

      "com.google.dagger:hilt-compiler:$hilt_version"

Просто измените его на:

      "com.google.dagger:hilt-android-compiler:$hilt_version"

Оставить как есть,

применить плагин: 'kotlin-kapt' или плагины {id 'kotlin-kapt'}

Это решит вашу проблему

build.gradle (проект)

      buildscript {
    dependencies {
        classpath 'com.android.tools.build:gradle:7.0.4'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath 'com.google.dagger:hilt-android-gradle-plugin:2.38.1'
    }
}

Сколько бы мы ни применяли плагин, если следующие зависимости не применяются, то получается ошибка

build.gradle (: приложение)

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

dependencies {
    implementation "com.google.dagger:hilt-android:2.28-alpha"
    kapt "com.google.dagger:hilt-android-compiler:2.28-alpha"
}

В некоторых сценариях, с которыми я сталкивался, у меня есть работающий проект на одной из моих рабочих станций, но когда я оформляю заказ на другом компьютере, возникает эта проблема.

Это связано с тем, что плагин hilt android применяется, но получение зависимостей еще не достигло раздела для загрузки зависимости компилятора.

Простое решение — закомментировать id(BuildPlugins.hiltPlugin)если вы используете plugins{}или же apply plugin BuildPlugins.hiltPlugin, попробуйте выполнить синхронизацию еще раз, затем, как только у вас будет успешная сборка (с проблемами рукоятки, но необходимая зависимость была загружена), вы можете раскомментировать строку и выполнить синхронизацию.

Примечание: BuildPlugins в данном случае — это объект, который содержит определения моих плагинов.

обязательно используйте следующий плагин в модуле приложения:

      id("dagger.hilt.android.plugin")

вместо

      id("com.google.dagger.hilt.android")

что ошибочно указано в официальных документах (как 2023)

O решил мою, добавив следующие зависимости

      // Dagger & Hilt
implementation("com.google.dagger:hilt-android:2.40")
kapt("com.google.dagger:hilt-android-compiler:2.40")
implementation("androidx.hilt:hilt-common:1.0.0")
kapt("androidx.hilt:hilt-compiler:1.0.0")
implementation("androidx.hilt:hilt-navigation-fragment:1.0.0")
implementation("androidx.hilt:hilt-work:1.0.0")

возможно, вы добавили это:

      id 'kotlin-kapt'
id 'com.google.dagger.hilt.android'

но вы забыли добавить зависимости hilt в свой модуль

все! Я встретил этот вопрос сегодня, если вы добавили все правильные плагины и зависимости, и вы все еще получаете сообщение об ошибке, хорошо — это ошибка в плагине Hilt gradle, а не ваша вина, просто прокомментируйте свою реализацию Hilt и перестройте свой проект и раскомментируйте свою реализацию после успешной сборки!

16 сентября 2023 г. Сборка уровня проекта

          plugins {
        id("com.android.application") version "8.1.1" apply false
        id("org.jetbrains.kotlin.android") version "1.8.10" apply false
        id("com.google.dagger.hilt.android") version "2.44" apply false
    }

Gradle сборки уровня модуля

      plugins {
    id("com.android.application")
    id("org.jetbrains.kotlin.android")
    kotlin("kapt")
    id("com.google.dagger.hilt.android")
}

зависимость

        implementation("com.google.dagger:hilt-android:2.44")
    kapt("com.google.dagger:hilt-android-compiler:2.44")
      kapt {
    correctErrorTypes = true
}

Необходимо добавить зависимость процессора аннотаций для Hilt с использованием java,

annotationProcessor 'com.google.dagger:hilt-android-compiler:2.28-альфа'

Другие вопросы по тегам