Browse Source
When users use `androidx.navigation`, they see `@Serialization` annotation they can use, without explictly adding `kotlinx.serialization`. They see, because it is added as an `api` dependency. The Compose Gradle plugin on the other hand provide `./gradlew runRelease` task that uses ProGuard to minify binaries. Because the plugin should support not only Compose, but also all support libraries (androidx, components), we should bundle serialization ProGuard rules into it. Fixes https://youtrack.jetbrains.com/issue/CMP-8050 ## Testing ``` import androidx.compose.ui.window.singleWindowApplication import androidx.navigation.compose.NavHost import androidx.navigation.compose.composable import androidx.navigation.compose.rememberNavController fun main() = singleWindowApplication { NavHost( navController = rememberNavController(), startDestination = LoginRoute() ) { composable<LoginRoute> {} } } sealed interface Route @kotlinx.serialization.Serializable data class LoginRoute(val id: Long? = null) : Route ``` Doesn't crash when run `./gradlew runRelease` ## Release Notes ### Fixes - Desktop - Fix "Serializer for class is not found" using `androidx.navigation` and running `./gradlew runRelease` - `kotlinx.serialization` ProGuard rules are bundled in the Compose Gradle pluginpull/5318/head
1 changed files with 40 additions and 1 deletions
Loading…
Reference in new issue