Tag: androidinjector

未使用@绑定匕首的方法

我有以下定义的Splash屏幕活动: @Subcomponent(modules = arrayOf( SplashActivitySubcomponent.ComponentModule::class) ) interface SplashActivitySubcomponent : AndroidInjector { @Subcomponent.Builder abstract class Builder : AndroidInjector.Builder() @Module abstract class ComponentModule { @Binds @IntoMap @ActivityKey(SplashActivity::class) abstract fun bindSplashActivityInjectorFactory(builder: SplashActivitySubcomponent.Builder): AndroidInjector.Factory } } 我在活动中没有片段。 会发生什么是bindSplashActivityInjectorFactory未使用。 问题是我无法摆脱它,否则应用程序在运行时崩溃。 使用 @Suppress(“unused”) 是不够的,因为我仍然从kotlin-lint得到警告。 为什么在不使用时需要定义这个方法? 我能做些什么来避免这种警告? 这是我得到的错误: UnnecessaryAbstractClass – [ComponentModule] at com / xxxx / splash / di / SplashActivitySubcomponent.kt:20:5 OptionalAbstractKeyword […]

@用AndoridInjector和Kotlin在SubComponent中提供方法

我正在使用Dagger2 AndroidInjector和Kotlin。 我有一个这样定义模块的子组件: @Subcomponent(modules = arrayOf( UIModule::class, HomeActivitySubcomponent.ComponentModule::class )) interface HomeActivitySubcomponent : AndroidInjector { @Subcomponent.Builder abstract class Builder : AndroidInjector.Builder() @Module abstract class ComponentModule { @Binds @IntoMap @ActivityKey(HomeActivity::class) internal abstract fun bindMainActivityInjectorFactory(builder: Builder): AndroidInjector.Factory } } 如果这是Java我可以添加一个静态@Provides方法的ComponentModule @Module。 它必须是静态的,因为Dagger抱怨,如果我添加一个非静态方法的@Module类使用@Binds: 错误:@Module可能不包含非静态@Provides方法和抽象@Binds或@Multibinds声明 问题是:如何与Kotlin做到这一点?