hafiz
07/31/2024, 5:30 AMFATAL EXCEPTION: main (Ask Gemini)
Process: com.kloudius.katmaans, PID: 4348
android.os.BadParcelableException: Parcelable encountered IOException writing serializable object (name = com.kloudius.katmaans.presentation.screens.MainActivity)
at android.os.Parcel.writeSerializable(Parcel.java:2809)
at android.os.Parcel.writeValue(Parcel.java:2575)
at android.os.Parcel.writeValue(Parcel.java:2374)
at android.os.Parcel.writeList(Parcel.java:1427)
at android.os.Parcel.writeValue(Parcel.java:2518)
at android.os.Parcel.writeValue(Parcel.java:2374)
at android.os.Parcel.writeList(Parcel.java:1427)
at android.os.Parcel.writeValue(Parcel.java:2518)
at android.os.Parcel.writeValue(Parcel.java:2374)
at android.os.Parcel.writeArrayMapInternal(Parcel.java:1310)
at android.os.BaseBundle.writeToParcelInner(BaseBundle.java:1843)
at android.os.Bundle.writeToParcel(Bundle.java:1389)
at android.os.Parcel.writeBundle(Parcel.java:1379)
at android.os.Parcel.writeValue(Parcel.java:2491)
at android.os.Parcel.writeValue(Parcel.java:2381)
at android.os.Parcel.writeArrayMapInternal(Parcel.java:1310)
at android.os.BaseBundle.writeToParcelInner(BaseBundle.java:1843)
at android.os.Bundle.writeToParcel(Bundle.java:1389)
at android.os.Parcel.writeBundle(Parcel.java:1379)
at android.os.Parcel.writeValue(Parcel.java:2491)
at android.os.Parcel.writeValue(Parcel.java:2381)
at android.os.BaseBundle.dumpStats(BaseBundle.java:1917)
at android.os.BaseBundle.dumpStats(BaseBundle.java:1954)
at android.app.servertransaction.PendingTransactionActions$StopInfo.collectBundleStates(PendingTransactionActions.java:123)
at android.app.servertransaction.PendingTransactionActions$StopInfo.run(PendingTransactionActions.java:139)
at android.os.Handler.handleCallback(Handler.java:958)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:230)
at android.os.Looper.loop(Looper.java:319)
at android.app.ActivityThread.main(ActivityThread.java:8919)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:578)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)
Caused by: java.io.NotSerializableException: cafe.adriel.voyager.navigator.Navigator
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1240)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1620)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1581)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1490)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1234)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:354)
at android.os.Parcel.writeSerializable(Parcel.java:2804)
at android.os.Parcel.writeValue(Parcel.java:2575)
at android.os.Parcel.writeValue(Parcel.java:2374)
at android.os.Parcel.writeList(Parcel.java:1427)
at android.os.Parcel.writeValue(Parcel.java:2518)
at android.os.Parcel.writeValue(Parcel.java:2374)
at android.os.Parcel.writeList(Parcel.java:1427)
at android.os.Parcel.writeValue(Parcel.java:2518)
at android.os.Parcel.writeValue(Parcel.java:2374)
at android.os.Parcel.writeArrayMapInternal(Parcel.java:1310)
at android.os.BaseBundle.writeToParcelInner(BaseBundle.java:1843)
at android.os.Bundle.writeToParcel(Bundle.java:1389)
at android.os.Parcel.writeBundle(Parcel.java:1379)
at android.os.Parcel.writeValue(Parcel.java:2491)
at android.os.Parcel.writeValue(Parcel.java:2381)
at android.os.Parcel.writeArrayMapInternal(Parcel.java:1310)
at android.os.BaseBundle.writeToParcelInner(BaseBundle.java:1843)
at android.os.Bundle.writeToParcel(Bundle.java:1389)
at android.os.Parcel.writeBundle(Parcel.java:1379)
at android.os.Parcel.writeValue(Parcel.java:2491)
at android.os.Parcel.writeValue(Parcel.java:2381)
at android.os.BaseBundle.dumpStats(BaseBundle.java:1917)
at android.os.BaseBundle.dumpStats(BaseBundle.java:1954)Viktor Nyblom
07/31/2024, 7:31 AMhafiz
07/31/2024, 9:28 AMclass MainActivity : BasedActivityScreen() {
@Composable
override fun previewScreen() {
val viewModel = koinScreenModel<MainActivityViewModel>()
val mainActivityUiState by viewModel.state.collectAsState()
val selectedScreenTab:MutableState<Tab> = mutableStateOf(HomeScreenTab)
val snackBarHostState = rememberSnackBarHostState()
val coroutineScope = rememberCoroutineScope()
LifecycleEffect(
onStarted = {
viewModel.setTabList()
}
)
when(val mainState = mainActivityUiState){
is MainActivityViewState.Loading ->{}
is MainActivityViewState.ShowTab ->{
CustomBottomNavigation(tabList = mainState.tabScreenList,
selectedScreenTab = selectedScreenTab,
navigator = navigator,
snackBarHostState = snackBarHostState,
coroutineScope = coroutineScope
)
}
}
}
}
BasedActivity:
abstract class BasedActivityScreen : Screen{
open lateinit var navigator: Navigator
@Composable
override fun Content() {
navigator = LocalNavigator.currentOrThrow
val sessionState: SessionState = koinInject()
val sessionUiState by sessionState.isLoggedIn.collectAsState()
if (!sessionUiState){
LaunchedEffect(Unit){
delay(3000)
navigator.replace(LoginScreen())
}
}
previewScreen()
}
@Preview
@Composable
open fun previewScreen(){}
}
Mitchell Syer
07/31/2024, 1:14 PMopen lateinit var navigator: NavigatorThis is not serializable
Rok Oblak
07/31/2024, 2:37 PMhafiz
08/01/2024, 6:12 AMViktor Nyblom
08/01/2024, 6:16 AMhafiz
08/01/2024, 8:24 AM