Как использовать kotlin для определения класса приложения Android?

Вот мой код:

object MyApplication : Application() { override fun onCreate() { super.onCreate() initOkHttp() } } 

когда я объявляю MyApplication в AndroidManifest , он has no default constructor , может ли кто-нибудь мне помочь? введите описание изображения здесь

Решение ais – использовать ключевое слово class вместо object . Объявление object в Kotlin является одноэлементным, что означает, что он имеет только один экземпляр и имеет частный конструктор, чтобы предотвратить создание каких-либо других экземпляров.

В случае класса Application на Android, однако, сама инфраструктура создаст экземпляр, когда ваше приложение запустится, и для этого требуется доступный частный конструктор.

Используйте следующее, где в типе изменяется класс из объекта

 class MyApplication : Application() { override fun onCreate() { super.onCreate() initOkHttp() } } 

Вы должны использовать class вместо Object , чтобы он работал.

  class MyApplication : Application() { override fun onCreate() { super.onCreate() initOkHttp() } } 

Причина, по которой вы получаете эту ошибку, состоит в том, что модификатор object эффективно делает ваш класс синглом, поэтому нет практического способа его создания. Поэтому замените его class который является эквивалентом обычного класса Java.