android - example - kotlin ''onCreate'' anula nada
kotlin ios (5)
Estoy usando el desarrollo de componentes, en mi módulo común BaseActivity.kt y BaseFragment.kt. Los siguientes problemas ocurren cuando otros módulos los heredan
> 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
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)
}
}
Actualice las firmas de funciones o vuelva a compileSdk de 27 a 26
He solucionado este problema. La razón es que no configuras tu módulo común. Agregue el código de dos líneas en el módulo común build.gradle arriba: apply plugin: ''kotlin-android'' apply plugin: ''kotlin-android-extensions''
espero que esto le pueda ayudar.
Parece que algunas funciones han cambiado en la última actualización, simplemente elimine el '' ?
''del Bundle
Me gusta esto:
override fun onCreate(savedInstanceState: Bundle) {
super.onCreate(savedInstanceState)
}
También puede suceder en una clase de Fragmento: encontré el mismo problema para el método onCreateView
; para evitar eso, solo quita el ?
del parámetro LayoutInflater
,
Me gusta esto:
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View?
Tengo que añadir "?" cuando se utiliza appcompat-v7: 27.1.1
implementation "com.android.support:appcompat-v7:27.1.1
y
override fun onCreate(savedInstanceState : Bundle?){
super.onCreate(savedInstanceState)
}