Kotlin 'onCreate' 不覆盖任何内容



我正在我的公共模块BaseActivity.kt和BaseFragment.kt中使用组件开发。当其他模块继承它们时,会出现以下问题

> D:AndroidOneDailymodule_mainsrcmainjavacombocomainMainActivity.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:AndroidOneDailymodule_mainsrcmainjavacombocomainTimelineFragment.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

BaseActivity.kt:

abstract class BaseActivity : AppCompatActivity() {  
    init {  
        AppCompatDelegate.setCompatVectorFromResourcesEnabled(true)  
    }  
    abstract fun getLayoutRes(): Int  
    override fun onCreate(savedInstanceState: Bundle?) {  
        super.onCreate(savedInstanceState)  
        setContentView(getLayoutRes())  
    }  
}  

MainActivity.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)
}

它也可能发生在片段类中: 我发现方法 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)
}

更新函数签名或将 compileSdk 从 27 恢复到 26

我已经解决了这个问题。因为它是你不配置你的公共模块。请在常用模块的build.gradle顶部添加两行代码: apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' 希望这能帮助你。

相关内容

最新更新