Hello, does anyone know what I did wrong here? Is ...
# multiplatform
d
Hello, does anyone know what I did wrong here? Is this a bug? Code in thread
Copy code
expect abstract class KViewModel() {

    protected open fun onCleared()

}
Android actual
Copy code
actual typealias KViewModel = androidx.lifecycle.ViewModel
The code inside the android class:
Copy code
@SuppressWarnings("WeakerAccess")
protected void onCleared() {

}
The
typealias
is used with a java class sadly
It works using:
Copy code
actual abstract class KViewModel : androidx.lifecycle.ViewModel() {

    actual override fun onCleared() {
        super.onCleared()
    }

}
g
It may be because Java and Kotlin
protected
keyword are different. Java = visible for same package and subclasses VS Kotlin = visible for subclasses only.
👍 1
👍🏻 1
By overriding the onCleared in the actual (like you did) you make the visibility matches (it's reduced to "visible for subclasses" only)
d
ok, fair enough
thank you!