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是否已运行?