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:
co...@protonmail.com <co...@protonmail.com> #3
Please provide a minimal sample project along with the minimal steps to recreate the issue in the project.
jb...@google.com <jb...@google.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:
co...@protonmail.com <co...@protonmail.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.
co...@protonmail.com <co...@protonmail.com> #6
This has been fixed and will be available in navigation 2.6.0-alpha08
jb...@google.com <jb...@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
jb...@google.com <jb...@google.com>
co...@protonmail.com <co...@protonmail.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
ma...@deutschebahn.com <ma...@deutschebahn.com> #9
Really? Releasing AGP without being sure home-made libraries are working? ... next this seems to break androidx.core dependency Compiler stops with
public class MyActivity extends AppCompatActivity {
^
class file for androidx.core.content.OnConfigurationChangedProvider not found
because of other changes in androidx.navigation:2.5.0-alpha01 ?!
#madeMyDay ;(
jb...@google.com <jb...@google.com> #11
Please file an issue with a minimal sample project against the
ma...@deutschebahn.com <ma...@deutschebahn.com> #12
might you have unintentionally updated your navigation dependencies
yes, typically I update the nav_version field as proposed documented
I updated AGP from 7.0(.3) to 7.1.0 which forced me to then update navigation stack including safeargs (to 2.5.0alpha01) - you know why, and anyhow I updated updated kotlin from 1.5.30 to 1.6.10 - because this changed too in new AGP databinding deps - before or after, I ran into this compiler mess someone (and I doubt it is the new safeargs) somehow looks for the OnConfigurationChangeProvider which is not released with 2.4.0
It would be more helpful to me if s.o. can validate (or INvalidate) if safeArgs has it's finger in fire or somehow it's transitive dependencies.. yes, perhaps safeargs is not the guilty one in this case just the one I can blame on to be in the front row today. Sorry for that
Feedback you might take with to your next teams of teams: main purpose of this rant is to document the pain your uncoordinated releases in the androidx universe causes in the real world aside some unrealistic, "minimal sample projects" noone has the time to provide. Why don't you provide - "Eat your own dogfood" - US some sample projects that integrate all androidx components without dep problems on an active stable AGP and IntelliJ/Studio on a regular schedule when some androidx team releases a new version. Sounds unrealistic? - so it is to us! The more components your teams release with each transitive-cross dependencies, it's unlikely up to impossible to do regular project maintenance without spending nightmare hours in dependency management!
do...@gmail.com <do...@gmail.com> #13
^
class file for androidx.core.content.OnConfigurationChangedProvider not found
got the same error as you, i tried upgrading agp to 7.1 but it doesn't seem to work
jb...@google.com <jb...@google.com> #14
Navigation 2.5.0
depends on the newest Activity, which depends on the newest core version were those APIs exist.
If you don't wish to upgrade your core version, you can use the Navigation 2.4.1
release which fixes this bug directly without any other included changes.
Description
Component used: Navigation/SafeArgs Kotlin Version used:
2.4.0-rc01
AGP:7.1.0-rc01
Kotlin:1.6.10
When calling
gw :app:assembleDebug
I see the following error (plus stacktrace):Here's my plugins block in
app/b.g.kts
:Obviously the error message is incorrect -- KGP is invoked right there at the top 🤔
Happy to provide more info (Gradle Scan, other repo info) privately; just ping me!