android - Hilt UninitializedPropertyAccessException 试图注入 SipManager
问题描述
我无法将使用 hilt 的 sip 管理器注入到我的服务中。我在我的服务中注入了存储库并且它正在工作,所以我无法理解我做错了什么
我的 sip 模块
@Module
@InstallIn(SingletonComponent::class)
object SipModule {
@Singleton
@Provides
fun provideSipManager(@ApplicationContext context: Context): SipManager {
return SipManager.newInstance(context)
}
}
我的服务
@AndroidEntryPoint
class XmppService : Service(), ConnectionListener,
RosterLoadedListener,
IncomingChatMessageListener, OutgoingChatMessageListener {
...
@Inject
lateinit var xmppRepository: XmppRepository
//sip
@Inject
lateinit var sipManager: SipManager
...
}
存储库注入工作正常,但对于 sip 管理器,我得到以下错误:
21-03-29 15:56:57.643 21810-21810/com.example.ipcompose E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.ipcompose, PID: 21810
java.lang.RuntimeException: Unable to create service com.example.ipcompose.xmpp.service.XmppService: kotlin.UninitializedPropertyAccessException: lateinit property sipManager has not been initialized
at android.app.ActivityThread.handleCreateService(ActivityThread.java:3966)
at android.app.ActivityThread.access$1500(ActivityThread.java:220)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1876)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7397)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:935)
Caused by: kotlin.UninitializedPropertyAccessException: lateinit property sipManager has not been initialized
at com.example.ipcompose.xmpp.service.XmppService.getSipManager(XmppService.kt:71)
at com.example.ipcompose.xmpp.service.XmppService.registerSip(XmppService.kt:351)
at com.example.ipcompose.xmpp.service.XmppService.onCreate(XmppService.kt:91)
at android.app.ActivityThread.handleCreateService(ActivityThread.java:3954)
任何帮助表示赞赏
解决方案
推荐阅读
- lldb - Hopper Disassembler v4,无法启动调试器。未找到 LLDB
- npm-install - 安装和使用“npm”的示例
- python - 无头浏览器无法在页面之间导航
- python - 如何用枕头调整图像大小?
- javascript - 如何使用 outerHTML 结果从 html 中查找元素?
- android - MotionLayout 不会使用 MotionScene 进行动画处理
- c++ -
: 没有这样的文件或目录 Windows 10 - c# - 使用 Acumatica REST API 发送电子邮件
- django - Django:未强制执行 UniqueConstraint
- autocomplete - 强制 Qt Creator 解析和索引 -inl.h 文件