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