MarkRS
05/04/2023, 11:25 AMPablichjenkov
05/04/2023, 12:13 PMMarkRS
05/04/2023, 12:57 PMProcess: <http://uk.co|uk.co>.goodunlimited.mobilemanege, PID: 9976
java.lang.RuntimeException: Unable to start activity ComponentInfo{<http://uk.co|uk.co>.goodunlimited.mobilemanege/uk.co.goodunlimited.mobilemanege.screens.main.MainScreen}: java.lang.ClassCastException: android.app.Application cannot be cast to <http://uk.co|uk.co>.goodunlimited.mobilemanege.common.base.BaseApplication at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3773) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3913) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:139) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:96) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2436) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loopOnce(Looper.java:205) at android.os.Looper.loop(Looper.java:294) at android.app.ActivityThread.main(ActivityThread.java:8180) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:946) Caused by: java.lang.ClassCastException: android.app.Application cannot be cast to <http://uk.co|uk.co>.goodunlimited.mobilemanege.common.base.BaseApplication at <http://uk.co|uk.co>.goodunlimited.mobilemanege.common.base.BaseActivity$activityCompositionRoot$2.invoke(BaseActivity.kt:13) at <http://uk.co|uk.co>.goodunlimited.mobilemanege.common.base.BaseActivity$activityCompositionRoot$2.invoke(BaseActivity.kt:12) at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74) at <http://uk.co|uk.co>.goodunlimited.mobilemanege.common.base.BaseActivity.getActivityCompositionRoot(BaseAct at <http://uk.co|uk.co>.goodunlimited.mobilemanege.common.base.BaseActivity$compositionRootController$2.invoke(BaseActivity.kt:17) at <http://uk.co|uk.co>.goodunlimited.mobilemanege.common.base.BaseActivity$compositionRootController$2.invoke(BaseActivity.kt:16) at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74) at <http://uk.co|uk.co>.goodunlimited.mobilemanege.common.base.BaseActivity.getCompositionRootController(BaseActivity.kt:16) at <http://uk.co|uk.co>.goodunlimited.mobilemanege.screens.main.MainScreen.onCreate(MainScreen.kt:43) at android.app.Activity.performCreate(Activity.java:8595) at android.app.Activity.performCreate(Activity.java:8573) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1455) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3755) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3913) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:139) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:96) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2436) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loopOnce(Looper.java:205) at android.os.Looper.loop(Looper.java:294) at android.app.ActivityThread.main(ActivityThread.java:8180) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:946)
The code where it's happening is
@ExperimentalMultiplatform
open class BaseActivity : AppCompatActivity() {
val activityCompositionRoot: ActivityCompositionRoot by lazy {
ActivityCompositionRoot((application as BaseApplication).compositionRoot, this)
}
val compositionRootController: CompositionRootController by lazy {
CompositionRootController(activityCompositionRoot)
}
}
it's complaining about the "application as BaseApplication" part. "application" is the non-method version of
public final android.app.Application getApplication()
and my application object is
open class BaseApplication : Application() {
lateinit var compositionRoot: CompositionRoot
override fun onCreate() {
super.onCreate()
compositionRoot = CompositionRoot()
}
}
Pablichjenkov
05/04/2023, 1:08 PMMarkRS
05/04/2023, 1:12 PM