Cómo implementar lateinit correctamente con objects de class personalizados para usar en onCreate () en Android evitando el error 'Property getter or setter expected'

Estoy intentando implementar la integración de un agente Dialogflow (anteriormente api.ai) con mi aplicación Android, usando Kotlin. Revisé otras preguntas y respuestas sobre kotlin lateinit y el ciclo de vida onCreate () en Android es ideal para implementaciones tardías, para evitar escribir código sucio con objects nulos y correspondientes. y ? accesos en Kotlin. Pero me estoy encontrando con el error de ' Property getter or setter expected ' cuando trato de lateinint instancias de la class autodefinida. Aquí está el código:

 class AIApplication : Application() { private var activitiesCount: Int = 0 var lateinit settingsManager: SettingsManager //private set private val isInForeground: Boolean get() = activitiesCount > 0 override fun onCreate() { super.onCreate() settingsManager = SettingsManager(this) } 

Lo que me da el error de ' Property getter or setter expected ' en la línea de lateinit settingsManager . Aquí está la definición de SettingsManager :

 class SettingsManager(private val context: Context) { private val prefs: ShanetworkingPreferences private var useBluetooth: Boolean = false var isUseBluetooth: Boolean get() = useBluetooth set(useBluetooth) { this.useBluetooth = useBluetooth prefs.edit().putBoolean(PREF_USE_BLUETOOTH, useBluetooth).commit() val controller = (context.applicationContext as AIApplication).getBluetoothController() if (useBluetooth) { controller!!.start() } else { controller!!.stop() } } init { prefs = context.getShanetworkingPreferences(SETTINGS_PREFS_NAME, Context.MODE_PRIVATE) useBluetooth = prefs.getBoolean(PREF_USE_BLUETOOTH, true) } companion object { private val SETTINGS_PREFS_NAME = "ai.api.APP_SETTINGS" private val PREF_USE_BLUETOOTH = "USE_BLUETOOTH" } } 

Entonces, ¿cuál es la forma correcta de hacer esto? ¿Debo realizar algunos cambios en la class de SettingsManager? Por favor explica todo el concepto claramente.

    La statement tardía de SettingsManager es incorrecta. Prueba esto :

     lateinit var settingsManager: SettingsManager 

    en lugar de

     var lateinit settingsManager: SettingsManager 

    Espero que esto ayude.