android - 在以下任何来源中都找不到插件 [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
解决方案
经过长时间的斗争,我解决了如下问题;
我向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'
}
推荐阅读
- android - 选择在recyclerview行kotlin中按下哪个按钮
- postgresql - PostgreSql 中的临时文件
- android - React Native Module (Android) - TypeError: undefined is not an object
- javascript - 如何注册到关闭按钮元素的 onClick 事件
- android - 每当从通知中按下播放时,让 ExoPlayer 寻找最后一个时间点?
- elasticsearch - ElasticSearch 根据桶长度过滤结果(桶中唯一键的数量)
- jquery - 带有选择和关键字搜索的jQuery同位素过滤器不能一起工作
- mysql - Grafana世界地图面板:mysql中的经纬度无法在地图上显示点
- java - 合并两个不同类型对象的列表
- flutter - 如何在 Flutter 中向 TextFormField 添加阴影