未使用@绑定匕首的方法
我有以下定义的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 – [bindSplashActivityInjectorFactory] at com / xxxx / splash / di / SplashActivitySubcomponent.kt:22:9
现在我解决了这个问题:
@Subcomponent(modules = arrayOf(SplashActivitySubcomponent.ComponentModule::class)) interface SplashActivitySubcomponent : AndroidInjector { @Subcomponent.Builder abstract class Builder : AndroidInjector.Builder () @Module @Suppress("UnnecessaryAbstractClass", "OptionalAbstractKeyword") abstract class ComponentModule { @Suppress("unused") @Binds @IntoMap @ActivityKey(SplashActivity::class) abstract fun bindSplashActivityInjectorFactory(builder: SplashActivitySubcomponent.Builder): AndroidInjector.Factory } }
所以我只是补充说:
@Suppress("UnnecessaryAbstractClass", "OptionalAbstractKeyword")