Dagger 2不生成组件类(Android、Kotlin)
基本上,我想测试是否自动“注入”了密码。但是我找不到Dagger 2不生成组件类(Android、Kotlin),android,kotlin,dagger-2,Android,Kotlin,Dagger 2,基本上,我想测试是否自动“注入”了密码。但是我找不到DaggerMyComponent。我想我一定做错了什么,但是什么 在主要活动下, @Component(modules=arrayOf(MyModule::class)) @Singleton interface MyComponent { fun inject(coffee: CoffeeShop) } @Module class MyModule { @Provides @Singleton @ForAp
DaggerMyComponent
。我想我一定做错了什么,但是什么
在主要活动下,
@Component(modules=arrayOf(MyModule::class))
@Singleton
interface MyComponent
{
fun inject(coffee: CoffeeShop)
}
@Module
class MyModule
{
@Provides
@Singleton
@ForApplication
fun provideCoffee():Coffee
{
return Coffee("Bad coffee");
}
}
data class Coffee(var Name:String)
class CoffeeShop
{
@Inject
var TheCoffee:Coffee? = null;
}
@Qualifier
@Retention(AnnotationRetention.RUNTIME)
annotation class ForApplication
格雷德尔先生
apply plugin: 'kotlin-kapt'
...
kapt {
generateStubs = true
}
....
dependencies {
compile 'com.google.dagger:dagger-android:2.13'
kapt 'com.google.dagger:dagger-android-processor:2.13'
compileOnly 'com.google.dagger:dagger:2.13'
kapt 'com.google.dagger:dagger-compiler:2.13'
它编译/生成吗?是的。但是在构建成功后,当我键入
DaggerMyComponent
时,它找不到该类。我怀疑它是否能够构建,因为CoffeeShop
无法提供给CoffeeShop
,因为您没有使用构造函数注入或从组件提供它。您还应该使用构造函数注入,而不是CoffeeShop
的字段注入,因为您可以自己创建它。您应该查找错误,或者验证Dagger是否运行,但是您的gradle部分看起来很好。昨天有人问了一个类似的问题,他们在哪里(错误地)使用了字段注入,请参见Coffee
可以null
,因此我认为该类可以在没有Dagger的情况下编译。构建成功,我可以运行应用程序。但我不确定匕首是否跑掉了。除了在build.gradle中添加这些,我还需要做其他事情吗?如何检查Dargger是否已运行?它是否编译/生成?是。但是在构建成功后,当我键入DaggerMyComponent
时,它找不到该类。我怀疑它是否能够构建,因为CoffeeShop
无法提供给CoffeeShop
,因为您没有使用构造函数注入或从组件提供它。您还应该使用构造函数注入,而不是CoffeeShop
的字段注入,因为您可以自己创建它。您应该查找错误,或者验证Dagger是否运行,但是您的gradle部分看起来很好。昨天有人问了一个类似的问题,他们在哪里(错误地)使用了字段注入,请参见Coffee
可以null
,因此我认为该类可以在没有Dagger的情况下编译。构建成功,我可以运行应用程序。但我不确定匕首是否跑掉了。除了在build.gradle中添加这些,我还需要做其他事情吗?如何检查Dargger是否已运行?