如何使用kotlin定义android应用程序类?

时间:2017-11-27 04:41:57

标签: android kotlin android-manifest

这是我的代码:

 object MyApplication : Application() {

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

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

5 个答案:

答案 0 :(得分:3)

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

对于Android上的Application类,框架本身将在应用程序启动时创建实例,这需要一个可访问的私有构造函数。

答案 1 :(得分:1)

使用以下内容将类型从对象

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

答案 2 :(得分:1)

您应该使用class代替Object,以使其有效。

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

答案 3 :(得分:0)

您收到该错误的原因是因为object修饰符有效地使您的类成为单例,因此没有实际的方法来实例化它。因此,将其替换为class,它等同于普通的Java类。

答案 4 :(得分:0)

这样,您可以创建应用程序类

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