如何使用kotlin定义Android Application类?

问题描述 投票:0回答:5

我的代码:

 object MyApplication : Application() {

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

当我在

MyApplication
中声明
AndroidManifest
时,它会说
has no default constructor

有人可以帮忙吗?

android kotlin android-manifest
5个回答
5
投票

解决方案是使用

class
关键字而不是
object
。 Kotlin 中的
object
声明
是单例,这意味着它只有一个实例,并且它有一个私有构造函数来防止创建任何其他实例。

对于 Android 上的

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


1
投票

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

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

1
投票

您应该使用

class
而不是
Object
,才能使其正常工作。

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

0
投票

您收到该错误的原因是因为

object
修饰符有效地使您的类成为单例,因此没有实际的方法可以实例化它。因此将其替换为
class
,相当于普通的 Java 类。


0
投票

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

class MyApplication : Application() {
   override fun onCreate() {
      super.onCreate()
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.