Has*_*cuk 67 android gradle android-studio gradle-kotlin-dsl dagger-hilt
当我想在我的项目中使用@AndroidEntryPoint(它是 hilt 的属性)时,我收到以下警告。
Expected @AndroidEntryPoint to have a value. Did you forget to apply the Gradle Plugin? (dagger.hilt.android.plugin)
Run Code Online (Sandbox Code Playgroud)
当我尝试将 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:
Run Code Online (Sandbox Code Playgroud)
我尝试将其添加到项目模块级别的 build.gradle 文件中,如下所示。他们都给出了一个错误。
我尝试将其作为类路径添加到项目级别的 build.gradle 文件中,在这种情况下我仍然收到错误。
当我创建默认项目时,创建了一个settings.gradle结构,如下所示。这是我第一次使用这个版本。我的 Android Studio 版本 Android Studio - Bumblebee | 2021.1.1 金丝雀 13
小智 132
我迟到了。由于用于在项目级别添加依赖项的新 Gradle 语法,我在 Android Studio Bumblebee 中也遇到了同样的问题。
要在项目级别添加 Dagger Hilt,您可以使用以下语法:
id 'com.google.dagger.hilt.android' version '2.41' apply false
Run Code Online (Sandbox Code Playgroud)
在撰写本文时,最新版本是 2.41。它位于mavenCentral 存储库中。
Has*_*cuk 48
经过长时间的斗争,我解决了以下问题;
我在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")
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后,当我将如下所示的 hilt 插件添加到模块级build.gradle文件中时,它已正确更新。
plugins{
...
id 'dagger.hilt.android.plugin'
}
Run Code Online (Sandbox Code Playgroud)
Pra*_*een 23
用于添加dagger hilt到您的项目中。按着这些次序
将依赖项添加hilt到模块的build.gradle. 我假设你正在使用Kotlin,否则你必须使用annotationProcessor插件kapt。
dependencies {
//..
implementation 'com.google.dagger:hilt-android:2.39.1'
kapt 'com.google.dagger:hilt-compiler:2.39.1'
//..
}
Run Code Online (Sandbox Code Playgroud)
添加hilt gradle plugin到项目的build.gradle.
dependencies {
//..
classpath 'com.google.dagger:hilt-android-gradle-plugin:2.39.1'
}
Run Code Online (Sandbox Code Playgroud)
应用kotlin-kapt并hilt插件到模块build.gradle
plugins {
id 'kotlin-kapt'
id 'dagger.hilt.android.plugin'
}
Run Code Online (Sandbox Code Playgroud)
Atu*_*pta 14
plugin{}根目录中的块build.gradle用于定义可应用于根目录build.gradle和所有(或部分)Gradle 子项目的 Gradle 插件。
使用插件块的一个警告是,它仅解析Gradle 插件门户中存在的插件(请参阅文档)或自定义 Maven 和 Ivy 插件存储库除了实际实现插件的工件之外还必须包含插件标记工件(请参阅文档))。对于 Android Gradle 插件和 Hilt 插件,他们尚未将这些插件发布到Gradle 插件门户,也没有发布其插件标记工件
由于上述缺少插件标记工件,您需要通过添加以下代码使用插件解析规则手动解析插件(这settings.gradle是特定于 Hilt Gradle 插件的其他插件,您必须检查不同的内容requested.id.id)
pluginManagement {
repositories {
// Your repo from where Gradle will search for Gradle plugins
}
plugins {
// ...
}
resolutionStrategy {
eachPlugin {
if(requested.id.id == 'dagger.hilt.android.plugin') {
useModule("com.google.dagger:hilt-android-gradle-plugin:${requested.version}")
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
Sam*_*der 11
我遇到了同样的问题,我解决了问题如下:
首先,将com.google.dagger.hilt.android插件添加到项目的根 build.gradle 文件中:
plugins {
id 'com.android.application' version '7.2.0' apply false
id 'com.android.library' version '7.2.0' apply false
id 'com.google.dagger.hilt.android' version '2.42' apply false
id 'org.jetbrains.kotlin.android' version '1.6.0' apply false
}
task clean(type: Delete) {
delete rootProject.buildDir
}
Run Code Online (Sandbox Code Playgroud)
然后,应用 Gradle 插件并在 app/build.gradle 文件中添加这些依赖项:
plugins {
id 'com.android.application'
id 'org.jetbrains.kotlin.android'
id 'kotlin-kapt'
id 'com.google.dagger.hilt.android'
}
android {
....................
// Enable java 8
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = '1.8'
}
}
dependencies {
implementation 'com.google.dagger:hilt-android:2.38.1'
kapt 'com.google.dagger:hilt-android-compiler:2.38.1'
}
Run Code Online (Sandbox Code Playgroud)
小智 7
只需将其添加到项目的根 build.gradle 文件中即可。
buildscript {
repositories {
// other repositories...
mavenCentral()
}
dependencies {
// other plugins...
classpath 'com.google.dagger:hilt-android-gradle-plugin:2.40'
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
49535 次 |
| 最近记录: |