首页 > 解决方案 > 在以下任何来源中都找不到插件 [id: 'dagger.hilt.android.plugin']

问题描述

当我想在我的项目中使用 @AndroidEntryPoint 这是 hilt 的一个属性时,我收到以下警告。

 Expected @AndroidEntryPoint to have a value. Did you forget to apply the Gradle Plugin? (dagger.hilt.android.plugin)

当我尝试将 id 'dagger.hilt.android.plugin' 添加到项目的模块级 build.gradle 文件中时,出现以下错误。

org.gradle.api.plugins.UnknownPluginException: Plugin [id: 'dagger.hilt.android.plugin'] was not found in any of the following sources:

我尝试将其添加到项目模块级别的 build.gradle 文件中,如下所示。他们都给出了错误。

在此处输入图像描述

我试图将它作为类路径添加到项目级别的 build.gradle 文件中,在这种情况下我仍然收到错误消息。

在此处输入图像描述

当我创建默认项目时,创建了一个 settings.gradle 结构,如下所示。这是我第一次使用这个版本。我的Android Studio 版本Android Studio - Bumblebee | 2021.1.1 金丝雀 13

在此处输入图像描述

标签: androidandroid-studiogradlegradle-kotlin-dsldagger-hilt

解决方案


经过长时间的斗争,我解决了如下问题;

我向settings.gradle添加了一个resolutionStrategy ,如下所示。

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

然后,当我将如下所示的刀柄插件添加到模块级build.gradle文件时,它已正确更新。

plugins{
...
id 'dagger.hilt.android.plugin'
}

推荐阅读