需要@HiltAndroidApp有一个值。你忘记应用Gradle插件了吗?
我有谷歌这个问题,但结果是不适合我 详情如下需要@HiltAndroidApp有一个值。你忘记应用Gradle插件了吗?,android,dagger-2,dagger-hilt,Android,Dagger 2,Dagger Hilt,我有谷歌这个问题,但结果是不适合我 详情如下 public final class应用程序扩展com.zhixin.wedeep.common.BaseApplication实现androidx.lifecycle.LifecycleOwner{ ^ //需要@HiltAndroidApp有一个值。你忘记应用Gradle插件了吗? 应用程序代码 @HiltAndroidApp 类App:BaseApplication(),LifecycleOwner{ @注入 lateinit变量服务:Eve
public final class应用程序扩展com.zhixin.wedeep.common.BaseApplication实现androidx.lifecycle.LifecycleOwner{
^
//需要@HiltAndroidApp有一个值。你忘记应用Gradle插件了吗?
应用程序代码
@HiltAndroidApp
类App:BaseApplication(),LifecycleOwner{
@注入
lateinit变量服务:EventService
private val mLifecycleRegistry=LifecycleRegistry(此)
}
此模块包含一个gradle文件
apply plugin: 'kotlin-kapt'
apply plugin: 'kotlin-allopen'
apply plugin: 'androidx.navigation.safeargs.kotlin'
apply plugin: 'dagger.hilt.android.plugin'
dependencies {
implementation rootProject.ext.dependencies["hilt-android"]
implementation rootProject.ext.dependencies["hilt-lifecycle-viewmodel"]
kapt rootProject.ext.kapt["hilt-compiler"]
kapt rootProject.ext.kapt["hilt-android-compiler"]
}
谁有主意?谢谢!我今天早上刚碰到这个问题。您的build.gradle中是否有向annotationProcessOptions添加参数的内容?例如:
android {
...
defaultConfig {
...
javaCompileOptions {
annotationProcessorOptions {
arguments = ["room.schemaLocation":
"$projectDir/schemas".toString()]
}
}
}
}
如果是这样,请尝试从“arguments=”更改为“arguments+=”,因为仅使用equals会覆盖以前设置的任何内容。使用Kotlin Gradle DSL时备份@SteveC answer有点不同 我们不能使用
+=
或arguments=mapOf()
。正如官方的匕首刀柄中所述,关于文档也是如此
有关说明,请参见下图:
arguments=mapOf()
将使用this.arguments.clear()
调用setArguments
,因此将覆盖上一个参数(在本例中为Hilt
) javaCompileOptions {
annotationProcessorOptions {
arguments(
mapOf(
"dagger.gradle.incremental" to "true",
"room.incremental" to "true"
)
)
}
}
将
参数()
classpath "com.google.dagger:hilt-android-gradle-plugin:$versions.daggerHiltCoreVersion"
定义特定的版本号,而不是上面的$versions.daggerHiltCoreVersion
并将插件添加到您的应用程序级别渐变:
应用插件:“dagger.hilt.android.plugin”
对于更高版本的Gradle,添加插件如下
plugins {
id 'dagger.hilt.android.plugin'
}
这对我来说很有用,因为我不添加```annotationProcessorOptions{arguments+=[“room.schemaLocation”:“$projectDir/schemas.toString()]”```如果使用Room
,文档不会提示应将上述代码添加到build.gradle。对于Kotlin DLS,它可以是:arguments=arguments+mapOf(“Room.incremental”到“true”)
也可以使用以下语法arguments[“Room.schemaLocation”]=…arguments[“Room.incremental”]=true
添加任意数量的参数,但根据上面的答案,这对我来说根本不需要