我的代码:
object MyApplication : Application() {
override fun onCreate() {
super.onCreate()
initOkHttp()
}
}
当我在
MyApplication
中声明 AndroidManifest
时,它会说 has no default constructor
。
有人可以帮忙吗?
解决方案是使用
class
关键字而不是 object
。 Kotlin 中的 object
声明 是单例,这意味着它只有一个实例,并且它有一个私有构造函数来防止创建任何其他实例。
对于 Android 上的
Application
类,框架本身将在应用程序启动时创建实例,这需要一个可访问的私有构造函数。
使用以下内容将类型从对象更改为类
class MyApplication : Application() {
override fun onCreate() {
super.onCreate()
initOkHttp()
}
}
您应该使用
class
而不是 Object
,才能使其正常工作。
class MyApplication : Application() {
override fun onCreate() {
super.onCreate()
initOkHttp()
}
}
您收到该错误的原因是因为
object
修饰符有效地使您的类成为单例,因此没有实际的方法可以实例化它。因此将其替换为 class
,相当于普通的 Java 类。
这样你就可以创建一个应用程序类
class MyApplication : Application() {
override fun onCreate() {
super.onCreate()
}
}