-
-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
crash on rememberSavableNavigator #9
Comments
Welcome and thanks for contributing! Make sure to leave a detailed explanation of the issue. |
chRyNaN
added a commit
that referenced
this issue
Jul 12, 2023
Thanks for bringing up this issue! The issue is fixed in the following PR and will be out in the next release: #11 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Describe the bug
the serialization of the navigator is incorrect. On configuration change, the application crash
To Reproduce
defined model :
@Serializable
enum class Route(val value: String) { LIVE("live"), PLAYLIST("playlist"), SEARCH("search"), REPLAY("replay"), PLAYER("player") }
@Serializable
data class RouteData( val id: Route, val arguments: List<String>, )
call to the function
val navigator = rememberSavableNavigator(initialDestination = allRoutes[Route.LIVE]!!, destinationSerializer =RouteData.serializer())
Expected behavior
Configuration change preserve the navigator state
Stacktrace error
Process: fr.fgognet.antv.debug, PID: 5263 kotlinx.serialization.SerializationException: Class 'RouteData' is not registered for polymorphic serialization in the scope of 'Any'. To be registered automatically, class 'RouteData' has to be '@Serializable', and the base class 'Any' has to be sealed and '@Serializable'. Alternatively, register the serializer for 'RouteData' explicitly in a corresponding SerializersModule. at kotlinx.serialization.internal.AbstractPolymorphicSerializerKt.throwSubtypeNotRegistered(AbstractPolymorphicSerializer.kt:102) at kotlinx.serialization.internal.AbstractPolymorphicSerializerKt.throwSubtypeNotRegistered(AbstractPolymorphicSerializer.kt:114) at kotlinx.serialization.PolymorphicSerializerKt.findPolymorphicSerializer(PolymorphicSerializer.kt:109) at kotlinx.serialization.internal.AbstractPolymorphicSerializer.serialize(AbstractPolymorphicSerializer.kt:32) at kotlinx.serialization.encoding.Encoder$DefaultImpls.encodeSerializableValue(Encoding.kt:279) at kotlinx.serialization.encoding.AbstractEncoder.encodeSerializableValue(AbstractEncoder.kt:18) at kotlinx.serialization.encoding.AbstractEncoder.encodeSerializableElement(AbstractEncoder.kt:80) at com.chrynan.navigation.NavigationEvent$Forward$Destination.write$Self(NavigationEvent.kt:102) at com.chrynan.navigation.NavigationEvent$Forward$Destination$$serializer.serialize(NavigationEvent.kt:102) at com.chrynan.navigation.NavigationEvent$Forward$Destination$$serializer.serialize(NavigationEvent.kt:102) at kotlinx.serialization.encoding.Encoder$DefaultImpls.encodeSerializableValue(Encoding.kt:279) at kotlinx.serialization.encoding.AbstractEncoder.encodeSerializableValue(AbstractEncoder.kt:18) at kotlinx.serialization.encoding.AbstractEncoder.encodeSerializableElement(AbstractEncoder.kt:80) at kotlinx.serialization.internal.AbstractPolymorphicSerializer.serialize(AbstractPolymorphicSerializer.kt:35) at kotlinx.serialization.encoding.Encoder$DefaultImpls.encodeSerializableValue(Encoding.kt:279) at kotlinx.serialization.encoding.AbstractEncoder.encodeSerializableValue(AbstractEncoder.kt:18) at kotlinx.serialization.internal.NullableSerializer.serialize(NullableSerializer.kt:23) at kotlinx.serialization.encoding.Encoder$DefaultImpls.encodeSerializableValue(Encoding.kt:279) at kotlinx.serialization.encoding.AbstractEncoder.encodeSerializableValue(AbstractEncoder.kt:18) at com.chrynan.navigation.NavigationStateSerializer.serialize(NavigationState.kt:142) at com.chrynan.navigation.NavigationStateSerializer.serialize(NavigationState.kt:131) at kotlinx.serialization.encoding.Encoder$DefaultImpls.encodeSerializableValue(Encoding.kt:279) at kotlinx.serialization.encoding.AbstractEncoder.encodeSerializableValue(AbstractEncoder.kt:18) at com.chrynan.navigation.NavigationStateStoreSerializer.serialize(NavigationStateStore.kt:184) at com.chrynan.navigation.NavigationStateStoreSerializer.serialize(NavigationStateStore.kt:164) at kotlinx.serialization.encoding.Encoder$DefaultImpls.encodeSerializableValue(Encoding.kt:279) at kotlinx.serialization.encoding.AbstractEncoder.encodeSerializableValue(AbstractEncoder.kt:18) at kotlinx.serialization.encoding.AbstractEncoder.encodeSerializableElement(AbstractEncoder.kt:80) at com.chrynan.navigation.NavigatorSnapshot.write$Self(Navigator.kt:190) at com.chrynan.navigation.NavigatorSnapshot$$serializer.serialize(Navigator.kt:190) at com.chrynan.navigation.NavigatorSnapshot$$serializer.serialize(Navigator.kt:190)
The text was updated successfully, but these errors were encountered: