Как правильно реализовать lateinit с пользовательскими объектами класса для использования в onCreate () в android, избегая ошибки Property getter или setter expected

Я пытаюсь реализовать интеграцию агента Dialogflow (ранее api.ai) с моим Android-приложением, используя Kotlin. Я проверил другие вопросы и ответы о kotlin lateinit а жизненный цикл onCreate () в Android идеально подходит для реализации в конце-начале, чтобы избежать написания грязного кода с нулевыми объектами и соответствующими !! и ? Доступ в Котлин. Но при попытке lateinint экземпляры самоопределяемого класса я lateinint с ошибкой « Getter или setter ». Вот код:

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

Который дает мне ошибку « Property getter или setter expected » в lateinit settingsManager . Вот определение SettingsManager :

 class SettingsManager(private val context: Context) { private val prefs: SharedPreferences 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.getSharedPreferences(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" } } 

Итак, каков правильный способ сделать это? Нужно ли внести некоторые изменения в класс SettingsManager? Пожалуйста, объясните всю концепцию ясно.

    Недействительная декларация диспетчера настроек неверна. Попробуй это :

     lateinit var settingsManager: SettingsManager 

    вместо

     var lateinit settingsManager: SettingsManager 

    Надеюсь это поможет.