Status Update
Comments
il...@google.com <il...@google.com>
ap...@google.com <ap...@google.com> #2
Oh I forgot to mention that I thought it might be connected to this issue:
jb...@google.com <jb...@google.com> #3
Please provide a minimal sample project along with the minimal steps to recreate the issue in the project.
ga...@gmail.com <ga...@gmail.com> #4
Sorry for the delay. I got a working example here:
I poked into it a little bit and it seems to be connected to
Steps to reproduce:
- Navigate from Second Fragment to Child nav graph (with non-nullable parameters).
- Navigate to Third fragment using SafeArgs and the app crashes.
Crash log:
Process: cz.dels.issues, PID: 1743
java.lang.NullPointerException: null cannot be cast to non-null type kotlin.Long
at androidx.navigation.NavType$Companion$LongType$1.get(NavType.kt:352)
at androidx.navigation.NavType$Companion$LongType$1.get(NavType.kt:342)
at androidx.navigation.NavArgument.verify(NavArgument.kt:76)
at androidx.navigation.NavDestination.addInDefaultArgs(NavDestination.kt:502)
at androidx.navigation.NavController.addEntryToBackStack(NavController.kt:1865)
at androidx.navigation.NavController.addEntryToBackStack$default(NavController.kt:1813)
at androidx.navigation.NavController$navigate$4.invoke(NavController.kt:1721)
at androidx.navigation.NavController$navigate$4.invoke(NavController.kt:1719)
at androidx.navigation.NavController$NavControllerNavigatorState.push(NavController.kt:287)
at androidx.navigation.fragment.FragmentNavigator.navigate(FragmentNavigator.kt:246)
at androidx.navigation.fragment.FragmentNavigator.navigate(FragmentNavigator.kt:162)
at androidx.navigation.NavController.navigateInternal(NavController.kt:260)
at androidx.navigation.NavController.navigate(NavController.kt:1719)
at androidx.navigation.NavController.navigate(NavController.kt:1545)
at androidx.navigation.NavController.navigate(NavController.kt:1472)
at androidx.navigation.NavController.navigate(NavController.kt:1930)
at cz.dels.issues.SecondFragment.onViewCreated$lambda-0(SecondFragment.kt:38)
at cz.dels.issues.SecondFragment.$r8$lambda$XDYnOS_cYrafiNQ5rcCu1WCn0IE(Unknown Source:0)
at cz.dels.issues.SecondFragment$$ExternalSyntheticLambda0.onClick(Unknown Source:2)
Note: If in step 2 SaveArgs is not used then navigation works correctly. More information is here:
ap...@google.com <ap...@google.com> #5
Ups a typo: Navigate from Second First Fragment to Child nav graph (with non-nullable parameters).
Note: sorry for the spam but I am not able to edit my own comment.
ap...@google.com <ap...@google.com> #6
This has been fixed and will be available in navigation 2.6.0-alpha08
ap...@google.com <ap...@google.com> #7
Branch: androidx-main
commit 6b358154b794a0456b089ac8e548bfb830dd6c22
Author: Clara Fok <clarafok@google.com>
Date: Tue Mar 14 17:56:12 2023
Fix missing non-nullable arg when rebuilding hierarchy
When navigating with NavDirections, args is populated with an empty bundle. This causes issue when we rebuild parent hierarchy while adding a new entry to NavBackStack. If the Entry being rebuilt contains a non-nullalbe arg, i.e. Long, this empty bundle will cause an exception.
Test: ./gradlew navigation:navigation-runtime:cC
Bug: 249988437
Change-Id: I5c8ce739ad9a3428c8a8de13eae391bfff0db5df
M navigation/navigation-runtime/src/androidTest/java/androidx/navigation/NavControllerTest.kt
M navigation/navigation-runtime/src/main/java/androidx/navigation/NavController.kt
ap...@google.com <ap...@google.com> #8
The following release(s) address this bug.It is possible this bug has only been partially addressed:
androidx.navigation:navigation-runtime:2.6.0-alpha08
ap...@google.com <ap...@google.com> #9
Branch: snap-temp-L34200000699848945
commit 0849c43e4adbea7f96104d328f69a7c504b15ea1
Author: Jeremy Woods <jbwoods@google.com>
Date: Thu Jul 30 18:45:38 2020
override equals and hashCode for NavOptions
Lets implement these methods to simplify comparing NavOptions.
Equals method generated using studio.
Test: ./gradlew bOS
Bug: 161586466
Change-Id: I1beb8d06aa72ed6ad7bfe77d1f134a9793bc7e38
(cherry picked from commit 26288a9e8c3cb7ef4888ed252e2765bda7ab7d54)
M navigation/navigation-common/src/main/java/androidx/navigation/NavOptions.java
ap...@google.com <ap...@google.com> #10
Branch: snap-temp-L04700000699849955
commit 2a048de5fbc9f21dfb785a8d015eec9c10930874
Author: Jeremy Woods <jbwoods@google.com>
Date: Thu Jul 30 18:45:38 2020
override equals and hashCode for NavOptions
Lets implement these methods to simplify comparing NavOptions.
Equals method generated using studio.
Test: ./gradlew bOS
Bug: 161586466
Change-Id: I1beb8d06aa72ed6ad7bfe77d1f134a9793bc7e38
(cherry picked from commit 26288a9e8c3cb7ef4888ed252e2765bda7ab7d54)
M navigation/navigation-common/src/main/java/androidx/navigation/NavOptions.java
ap...@google.com <ap...@google.com> #11
Branch: snap-temp-L69500000699869549
commit f5f97b37c2bf85e50d6e819a0e2529f733e5c5c2
Author: Jeremy Woods <jbwoods@google.com>
Date: Thu Jul 30 18:45:38 2020
override equals and hashCode for NavOptions
Lets implement these methods to simplify comparing NavOptions.
Equals method generated using studio.
Test: ./gradlew bOS
Bug: 161586466
Change-Id: I1beb8d06aa72ed6ad7bfe77d1f134a9793bc7e38
(cherry picked from commit 26288a9e8c3cb7ef4888ed252e2765bda7ab7d54)
M navigation/navigation-common/src/main/java/androidx/navigation/NavOptions.java
ap...@google.com <ap...@google.com> #12
Branch: snap-temp-L31300000699869852
commit ebb79ab4f29f90cc26deb78c2ec9a7c06fd5240e
Author: Jeremy Woods <jbwoods@google.com>
Date: Thu Jul 30 18:45:38 2020
override equals and hashCode for NavOptions
Lets implement these methods to simplify comparing NavOptions.
Equals method generated using studio.
Test: ./gradlew bOS
Bug: 161586466
Change-Id: I1beb8d06aa72ed6ad7bfe77d1f134a9793bc7e38
(cherry picked from commit 26288a9e8c3cb7ef4888ed252e2765bda7ab7d54)
M navigation/navigation-common/src/main/java/androidx/navigation/NavOptions.java
ap...@google.com <ap...@google.com> #13
Branch: snap-temp-L53700000699921463
commit a3d1426113e183c5c294e4c124f61b28ff8fa91d
Author: Jeremy Woods <jbwoods@google.com>
Date: Thu Jul 30 18:45:38 2020
override equals and hashCode for NavOptions
Lets implement these methods to simplify comparing NavOptions.
Equals method generated using studio.
Test: ./gradlew bOS
Bug: 161586466
Change-Id: I1beb8d06aa72ed6ad7bfe77d1f134a9793bc7e38
(cherry picked from commit 26288a9e8c3cb7ef4888ed252e2765bda7ab7d54)
M navigation/navigation-common/src/main/java/androidx/navigation/NavOptions.java
ap...@google.com <ap...@google.com> #14
Branch: snap-temp-L25200000699921867
commit b7b6a6655ccad65b509d1b1e2b6e7c4d69a8f852
Author: Jeremy Woods <jbwoods@google.com>
Date: Thu Jul 30 18:45:38 2020
override equals and hashCode for NavOptions
Lets implement these methods to simplify comparing NavOptions.
Equals method generated using studio.
Test: ./gradlew bOS
Bug: 161586466
Change-Id: I1beb8d06aa72ed6ad7bfe77d1f134a9793bc7e38
(cherry picked from commit 26288a9e8c3cb7ef4888ed252e2765bda7ab7d54)
M navigation/navigation-common/src/main/java/androidx/navigation/NavOptions.java
ap...@google.com <ap...@google.com> #15
Branch: snap-temp-L07700000699933785
commit 6e637298fa0127e409ab105309e19cb1869e2c76
Author: Jeremy Woods <jbwoods@google.com>
Date: Thu Jul 30 18:45:38 2020
override equals and hashCode for NavOptions
Lets implement these methods to simplify comparing NavOptions.
Equals method generated using studio.
Test: ./gradlew bOS
Bug: 161586466
Change-Id: I1beb8d06aa72ed6ad7bfe77d1f134a9793bc7e38
(cherry picked from commit 26288a9e8c3cb7ef4888ed252e2765bda7ab7d54)
M navigation/navigation-common/src/main/java/androidx/navigation/NavOptions.java
Description
Component used: Navigation Version used: 2.3.0
In some of our jvm tests we want to check that the right navigation is triggered. Since we are not on an actual device we are checking if the correct
NavDirections
object andNavOptions
object are passed to the navigator. HoweverNavOptions
currently does not overrideequals
andhashCode
which makes this more complicated than needed. Since allNavOptions
fields are eitherint
orboolean
this should be straightforward to do.