应用了 Hilt Android Gradle 插件,但未找到 com.google.dagger:hilt-android-compiler 依赖项

The Hilt Android Gradle plugin is applied but no com.google.dagger:hilt-android-compiler dependency was found

我收到错误消息“已应用 Hilt Android Gradle 插件,但未找到 com.google.dagger:hilt-android-compiler 依赖项。”在构建项目时。

以下是我如何将刀柄添加到我的项目中。

我猜你错过了这个依赖关系

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

*先添加插件

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

*其次添加依赖

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

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

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

*第三次添加类路径

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

PS :如果您使用 java 将 kapt 替换为 annotationProcessor

保持原样,

apply plugin: 'kotlin-kapt'

plugins {
    id 'kotlin-kapt'
}

这将解决您的问题

如果您使用此编译器依赖项:

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

只需将其更改为:

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

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")

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 (:app)

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"
}

在我遇到的某些情况下,我的一个工作站上有一个 运行 项目,但是当我在另一台机器上结帐时,它会带来这个问题。

因为应用了hiltandroid插件,但是获取依赖还没有到下载编译依赖的部分

如果您使用 plugins{}apply plugin BuildPlugins.hiltPlugin,一个简单的解决方法是注释掉 id(BuildPlugins.hiltPlugin),尝试再次同步,然后一旦您成功构建(有刀柄问题- 但已下载所需的依赖项),您可以 un-comment 线路和同步。

注意:在这种情况下,BuildPlugins 是一个包含我的插件定义的对象。

我的问题是,当我尝试使用新的 Gradle 语法 id 'pluginId' version 'pluginVersion»' [apply false]

将 Hilt 依赖项添加到项目中的根 build.gradle 时,我使用了不正确的依赖项语法

而不是

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

我用过

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