嗨我有下面的广播接收器,它检索一个onboot完成来做一些事情,但它没有说没有找到接收器的喷射器工厂绑定。
我的猜测是,如果没有用户手动启动应用程序,匕首无法初始化?
class BootReceiver : DaggerBroadcastReceiver(){
@Inject
lateinit var storageClearSchedular: StorageClearSchedularContract
override fun onReceive(context: Context?, intent: Intent?) {
super.onReceive(context, intent)
Log.d(BootReceiver::class.java.simpleName,"Starting up schedulers for clearing cache")
storageClearSchedular.setAllSchedulars()
}
}
错误:
引起:java.lang.IllegalArgumentException:没有为类
绑定的注入器工厂答案 0 :(得分:2)
没有为您的BroadcastReceiver绑定注入工厂,因为没有提供它的组件。首先,您需要创建一个新模块,例如ReceiversBindingModule
:
@Module
interface ReceiversBindingModule {
@ContributesAndroidInjector
fun provideBootReceiver(): BootReceiver
}
然后您需要将其添加到AppComponent
@Component(modules = [
...
ReceiversBindingModule::class,
...])
class AppComponent