我对Splash屏幕活动有以下定义:
@Subcomponent(modules = arrayOf(
SplashActivitySubcomponent.ComponentModule::class)
)
interface SplashActivitySubcomponent : AndroidInjector<SplashActivity> {
@Subcomponent.Builder
abstract class Builder : AndroidInjector.Builder<SplashActivity>()
@Module
abstract class ComponentModule {
@Binds
@IntoMap
@ActivityKey(SplashActivity::class)
abstract fun bindSplashActivityInjectorFactory(builder: SplashActivitySubcomponent.Builder): AndroidInjector.Factory<out Activity>
}
}
我在Activity中没有片段。会发生什么是bindSplashActivityInjectorFactory
未使用。问题是我无法摆脱它,否则应用程序会在运行时崩溃。
使用
@Suppress("unused")
还不够,因为我仍然收到来自kotlin-lint的警告。 为什么我不需要在不使用时定义此方法?我该怎么做才能避免警告?
这是我得到的错误:
不必要的抽象类 - [ComponentModule] at COM / XXXX /防溅/二/ SplashActivitySubcomponent.kt:20:5
OptionalAbstractKeyword - [bindSplashActivityInjectorFactory] at COM / XXXX /防溅/二/ SplashActivitySubcomponent.kt:22:9
答案 0 :(得分:0)
现在我解决了这个问题:
@Subcomponent(modules = arrayOf(SplashActivitySubcomponent.ComponentModule::class))
interface SplashActivitySubcomponent : AndroidInjector<SplashActivity> {
@Subcomponent.Builder
abstract class Builder : AndroidInjector.Builder<SplashActivity>()
@Module
@Suppress("UnnecessaryAbstractClass", "OptionalAbstractKeyword")
abstract class ComponentModule {
@Suppress("unused")
@Binds
@IntoMap
@ActivityKey(SplashActivity::class)
abstract fun bindSplashActivityInjectorFactory(builder: SplashActivitySubcomponent.Builder): AndroidInjector.Factory<out Activity>
}
}
所以我刚补充说:
@Suppress("UnnecessaryAbstractClass", "OptionalAbstractKeyword")