简体   繁体   English

lateinit 属性实例尚未初始化,正在制作应用程序时

[英]lateinit property instance has not been initialized, while making an app

I'm a new developer(If I can call myself one) making an alarm app.我是一名新开发人员(如果我可以称自己为一个)正在制作警报应用程序。 I think I made other parts of the app but however hard I try, I can't find out how to fix the error.我想我制作了应用程序的其他部分,但无论我多么努力,我都不知道如何修复错误。 To access instance in AlarmManager.kt , I can't help but make instance companion object.要访问AlarmManager.kt中的实例,我不得不让实例伴侣 object。 But I guess that makes the problem.... Please could anyone tell me how can I fix this error?但我想这会导致问题......请有人告诉我如何解决这个错误吗? Thanks in advance!提前致谢!

kotlin.UninitializedPropertyAccessException: lateinit property instance has not been initialized kotlin.UninitializedPropertyAccessException:lateinit 属性实例尚未初始化

↓ SampleApplication.kt ↓ SampleApplication.kt

class SampleApplication : Application() {
    override fun onCreate() {
        super.onCreate()
        instance = this
    }

    companion object {
        lateinit var instance: SampleApplication private set
    }
}

↓AlarmManager.kt ↓AlarmManager.kt

object AlarmManager {
    var mService: MusicService? = null
    lateinit var mediaPlayer: MediaPlayer
    lateinit var mView: View
    lateinit var mTimer: Timer
    val tag1 = "alarm1"
    val tag2 = "alarm2"
    private val windowManager: WindowManager by lazy {
        SampleApplication.instance.getSystemService(Context.WINDOW_SERVICE) as WindowManager
    }

You would need to register SampleApplication in AndroidManifest file.您需要在 AndroidManifest 文件中注册SampleApplication Then only it will executed as an application class然后只有它将作为应用程序执行 class

<application
    android:name=".SampleApplication">

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM