问题描述
我是一名开发闹钟应用的新开发者(如果我可以称自己为)。我想我制作了应用程序的其他部分,但无论我怎么努力,我都无法找到解决错误的方法。为了在AlarmManager.kt 中访问实例,我不得不制作实例伴随对象。但我想这会导致问题......请有人告诉我如何解决这个错误?提前致谢!
kotlin.UninitializedPropertyAccessException:lateinit 属性实例尚未初始化
↓ SampleApplication.kt
class SampleApplication : Application() {
override fun onCreate() {
super.onCreate()
instance = this
}
companion object {
lateinit var instance: SampleApplication private set
}
}
↓报警管理器.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
}
解决方法
您需要在 AndroidManifest 文件中注册 SampleApplication
。然后只有它会作为应用程序类执行
<application
android:name=".SampleApplication">