Dagger 2调度Android注射器

时间:2019-03-08 12:04:31

标签: android dagger

我正在尝试使用新的匕首API进行活动注入,但出现错误MATCH (col1, col2, col3)

lateinit property dispatchingAndroidInjector has not been initialized

活动模块文件

// AppComponent.kt
@Singleton
@Component(modules = [
    AndroidSupportInjectionModule::class,
    ActivitiesModule::class
])
interface AppComponent {
    fun inject(app: Application)

    @Component.Builder
    interface Builder {

        fun build(): AppComponent

        @BindsInstance
        fun bindApplication(application: Application): Builder
    }
}

在我的MainActivity中,我称为注射

@Module
abstract class ActivitiesModule {

    @ContributesAndroidInjector
    abstract fun provideRestaurantMainActivity(): MainActivity
}

在我的应用程序中

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        AndroidInjection.inject(this)
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
    }
}

模块和组件的钩子上还有其他东西吗?

2 个答案:

答案 0 :(得分:1)

此“有趣的注入(应用程序:应用程序)”应该是

有趣的注入(应用程序:应用程序)

答案 1 :(得分:0)

我认为您使用了错误的AndroidInjectionAndroidSupportInjectionModule版本。

尝试更换 AndroidSupportInjectionModule::classAndroidInjectionModule::class