如何使用kotlin定义一个android应用class?

How to use kotlin to define a android Application class?

这是我的代码:

 object MyApplication : Application() {

      override fun onCreate() {
          super.onCreate()
          initOkHttp()
      }
   }

当我在 AndroidManifest 中声明 MyApplication 时,出现了 has no default constructor,有人可以帮助我吗? enter image description here

使用以下方法将类型从对象

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

您应该使用 class 而不是 Object,以使其正常工作。

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

你得到这个错误的原因是因为 object 修饰符有效地使你的 class 成为一个单例,因此没有实际的方法来实例化它。因此用 class 替换它,这相当于普通的 Java class.

解决方案是使用class关键字代替object。 Kotlin 中的 object declaration 是单例,这意味着它只有一个实例,并且它有一个私有构造函数来防止创建任何其他实例。

然而,在 Android 上的 Application class 的情况下,框架本身将在您的应用程序启动时创建实例,这需要一个可访问的私有构造函数。

这样你就可以创建一个应用程序class

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