Плагин 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-альфа'