首页 > 解决方案 > 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)

任何帮助表示赞赏

标签: androidandroid-studiokotlinsipdagger-hilt

解决方案


推荐阅读