这是我的代码:
object MyApplication : Application() {
override fun onCreate() {
super.onCreate()
initOkHttp()
}
}
当我在MyApplication
中声明AndroidManifest
时,会发生has no default constructor
,有人可以帮助我吗?
enter image description here
答案 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()
}
}