[英]How to use kotlin to define a android Application class?
這是我的代碼:
object MyApplication : Application() {
override fun onCreate() {
super.onCreate()
initOkHttp()
}
}
當我在AndroidManifest
聲明MyApplication
時,它發生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()
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.