Status Update
Comments
lu...@google.com <lu...@google.com>
je...@google.com <je...@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.
je...@google.com <je...@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:
jb...@google.com <jb...@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.
je...@google.com <je...@google.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
cj...@gmail.com <cj...@gmail.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
ti...@gmail.com <ti...@gmail.com> #9
Was this fixed in Studio 2021.1.1 RC 1?
jb...@google.com <jb...@google.com> #11
This will be fixed in the Navigation Safe Args 2.5.0-alpha01
and 2.4.1
versions. You can follow the
cj...@gmail.com <cj...@gmail.com> #12
Thank you! 2.4.1 is at least two weeks out (possibly 4, if I'm not mistaken).
I applaud the AGPs team decision to stick to the new APIs though. Hopefully its not too long before Navigation fixes this.
ro...@gmail.com <ro...@gmail.com> #13
So we are talking mid february ?
jb...@google.com <jb...@google.com>
de...@google.com <de...@google.com> #14
Thank you for your patience while our engineering team worked to resolve this issue. A fix for this issue is now available in:
- Android Studio Dolphin Canary 5 (2021.3.1.5)
- Android Gradle Plugin 7.3.0-alpha05
We encourage you to try the latest update.
If you notice further issues or have questions, please file a new bug report.
Thank you for taking the time to submit feedback — we really appreciate it!
zo...@gmail.com <zo...@gmail.com> #15
Is this included in the Dolphin Beta 1 build? 7.3.0-beta01?
I'm able to consistent reproduce this when having the namespace
field setup in my gradle file. Removing it (and adding the value back to the Manifest files) does not cause the issue. Not sure if the same case here, or a new one.
ro...@gmail.com <ro...@gmail.com> #16
May be related to this one ?
xo...@google.com <xo...@google.com> #17
Right, the direct incompatibility between AGP and Safe Args is fixed, I believe, but there's another issue related to the use of applicationId
vs namespace
, tracking at
Description
Build: AI-212.5457.46.2112.7905983, 202111111328,
AI-212.5457.46.2112.7905983, JRE 11.0.12+0-b1504.28-7817840x64 JetBrains s.r.o., OS Linux(amd64) v5.13.0-21-generic, screens 2560.0x1440.0, 1080.0x1920.0
AS: Chipmunk | 2021.2.1 Canary 5; Kotlin plugin: 212-1.5.31-release-556-AS4638.7; Android Gradle Plugin: 7.0.3; Gradle: 7.2; Gradle JDK: version 13.0.2; NDK: from local.properties: (not specified), latest from SDK: (not found); LLDB: pinned revision 3.1 not found, latest from SDK: (package not found); CMake: from local.properties: (not specified), latest from SDK: (not found), from PATH: (not found)
Updating Android Gradle Plug-in from 7.2.0-alpha04 to 7.2.0-alpha05 breaks the build as the Safe Args plug-in no longer works.
This project uses AGP 7.2.0-alpha04 and after changing to 7.2.0-alpha05 it fails to build:
Stack trace attached.