【问题标题】:lateinit property instance has not been initialized, while making an applateinit 属性实例尚未初始化,正在制作应用程序时
【发布时间】:2021-02-03 01:52:00
【问题描述】:

我是一名新开发人员(如果我可以称自己为开发人员)正在制作一个警报应用程序。我想我制作了应用程序的其他部分,但无论我多么努力,我都不知道如何修复错误。要访问 AlarmManager.kt 中的 instance,我不得不制作 instance 伴随对象。但我想这会导致问题......请有人告诉我如何解决这个错误吗?提前致谢!

kotlin.UninitializedPropertyAccessException:lateinit 属性实例尚未初始化

↓ SampleApplication.kt

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

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

↓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
    }

【问题讨论】:

  • 您在何时何地使用此AlarmManager
  • 你能检查一下github.com/illizien/Study-Aider吗?它的使用时间和地点太长了!
  • 你在 AndroidManifest 文件中注册了 SampleApplication 吗?
  • 非常感谢!

标签: android kotlin initialization kotlin-lateinit


【解决方案1】:

您需要在 AndroidManifest 文件中注册 SampleApplication。然后只有它会作为应用程序类执行

<application
    android:name=".SampleApplication">

【讨论】:

  • 非常感谢!!!!!!!!!!!!!!!你救了我!!!!!!!!!!!!!!!
  • 对不起,我不知道有“接受”。我点击了左边的那个 V 标志(我认为投票是“接受”)
猜你喜欢
  • 2017-03-03
  • 1970-01-01
  • 1970-01-01
  • 2020-12-31
  • 2021-06-11
  • 2017-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多