[英]kotlin 'onCreate' overrides nothing
我在我的公共模塊 BaseActivity.kt 和 BaseFragment.kt 中使用組件開發。 其他模塊繼承時出現如下問題
> D:\Android\OneDaily\module_main\src\main\java\com\boco\main\MainActivity.kt
> Error:(7, 24) Unresolved reference: base
> Error:(9, 22) Unresolved reference: BaseActivity
> Error:(21, 5) 'onCreate' overrides nothing
> Error:(17, 5) 'getLayoutRes' overrides nothing
> Error:(22, 15) Unresolved reference: onCreate
> Error:(27, 22) Unresolved reference: findViewById
> Error:(42, 34) Unresolved reference: supportFragmentManager
> D:\Android\OneDaily\module_main\src\main\java\com\boco\main\TimelineFragment.kt
> Error:(7, 24) Unresolved reference: base
> Error:(10, 5) 'getLayoutRes' overrides nothing
> Error:(9, 26) Unresolved reference: BaseFragment
> Error:(14, 5) 'onCreateView' overrides nothing
> Error:(15, 22) Unresolved reference: onCreateView
基礎活動.kt:
abstract class BaseActivity : AppCompatActivity() {
init {
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true)
}
abstract fun getLayoutRes(): Int
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(getLayoutRes())
}
}
主活動.kt
class MainActivity : BaseActivity() {
private lateinit var mBottomNav: BottomNavigationView
private var mFragment1 = TimelineFragment() as Fragment
private var mFragment2 = TimelineFragment() as Fragment
private var mFragment3 = TimelineFragment() as Fragment
override fun getLayoutRes(): Int {
return R.layout.activity_main
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
}
}
似乎有些功能在上次更新時發生了變化,只需刪除' ?
'來自Bundle
像這樣:
override fun onCreate(savedInstanceState: Bundle) {
super.onCreate(savedInstanceState)
}
它也可能發生在Fragment類中:我發現onCreateView
方法存在同樣的問題; 為了避免這種情況,只需刪除?
從LayoutInflater
參數,
像這樣:
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View?
我要添加“?” 使用appcompat-v7時:27.1.1
implementation "com.android.support:appcompat-v7:27.1.1
和
override fun onCreate(savedInstanceState : Bundle?){
super.onCreate(savedInstanceState)
}
更新函數簽名或從27到26恢復到compileSdk
如果有人面臨與 onCreateOptionsMenu 'onCreateOptionsMenu' overrides nothing
類似的問題,則'onCreateOptionsMenu' overrides nothing
:
我更新了 Kotlin 插件,它開始給我這個錯誤
這是我在override fun onCreateOptionsMenu(menu: Menu?): Boolean {...}
按照@Hadi 的回答刪除了?
在Menu?
所以代碼現在是:
override fun onCreateOptionsMenu(menu: Menu): Boolean {...}
它現在工作得很好!
我已經解決了這個問題。 因為它是你沒有配置你的通用模塊。 請在你的公共模塊的build.gradle頂部添加兩行代碼: apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions'
希望這可以幫到你。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.