我在我的应用程序中使用依赖注入框架Koin . 以下代码行在我的MainActivity中完美运行:
private val auth: FirebaseAuth by inject()
不幸的是,同一行代码在自定义BroadcastReceiver中不起作用 . Android Studio标记“inject()” - 函数为红色并告诉我它是一个未解析的引用(导入“org.koin.android.ext.android.inject”被标记为未使用) .
当我尝试构建它时,我得到以下异常:
错误:(14,39)未解决的参考 . 由于接收器类型不匹配,下列候选者都不适用:public inline fun ComponentCallbacks.inject(name:String = ...):org.koin.android.ext.android中定义的Lazy
如何在这个类中进行注射,为什么它会失败?
1 回答
您在活动中使用的
inject
方法定义为here,如下所示:因此,您可以在实现ComponentCallbacks接口的类中调用它 - 这些是应用程序组件,如活动或服务 .
如果您希望在BroadcastReceiver中以相同的方式使用Koin,您可以使用相同的实现在该类上定义另一个
inject
扩展: