Status Update
Comments
jb...@google.com <jb...@google.com> #2
Oh I forgot to mention that I thought it might be connected to this issue:
[Deleted User] <[Deleted User]> #3
Please provide a minimal sample project along with the minimal steps to recreate the issue in the project.
[Deleted User] <[Deleted User]> #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:
an...@gmail.com <an...@gmail.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.
[Deleted User] <[Deleted User]> #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
[Deleted User] <[Deleted User]> #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
[Deleted User] <[Deleted User]> #9
jb...@google.com <jb...@google.com> #10
You're right, looks like we didn't add it back when we made
an...@gmail.com <an...@gmail.com> #11
[Deleted User] <[Deleted User]> #12
be...@google.com <be...@google.com> #13
The statement was removed during the migration to V2, when we did not expect this problem to occur.
[Deleted User] <[Deleted User]> #14
[Deleted User] <[Deleted User]> #15
fo...@gmail.com <fo...@gmail.com> #16
pa...@outlook.com <pa...@outlook.com> #17
Same issue in my project. Any update here?
ap...@google.com <ap...@google.com> #18
Branch: androidx-main
commit 0c4ad1856d1b956d8a0da8074557a5a69fb130d9
Author: Jeremy Woods <jbwoods@google.com>
Date: Tue Aug 30 16:16:49 2022
Fix navigating to Activities from unloaded modules
Currently, if you are using dynamic Navigation and you attempt to
navigate to a Activity in a module that has not yet be loaded, a
ClassNotFoundException is thrown. This is because the
DynamicActivityNavigator currently attempts to install the module (which
is an async operation) and then immediately navigates to the new class.
Instead, we should return after the install attempt and then allow the
systme to retry the navigation at the appropriate time.
RelNote: "Dynamic Navigation now properly attempts to install Activity
destinations from other modules before navigating to them."
Test: tested on a device using bundletool
Bug: 240292838
Change-Id: Ia2c1645426d2f6a5958a10379a99f2aade3dd03a
M navigation/navigation-dynamic-features-runtime/src/main/java/androidx/navigation/dynamicfeatures/DynamicActivityNavigator.kt
jb...@google.com <jb...@google.com> #19
This has been fixed internally and will be released in Navigation 2.5.2
and 2.6.0-alpha01
.
na...@google.com <na...@google.com> #20
This bug was linked in a change in the following release(s):
androidx.navigation:navigation-dynamic-features-runtime:2.6.0-alpha01
androidx.navigation:navigation-dynamic-features-runtime:2.5.2
Description
Version used: 2.5.0
Devices/Android versions reproduced on: all
package androidx.navigation.dynamicfeatures
public class DynamicActivityNavigator
return statement is missing here after install manager call.
It causes application to crash because you're navigating to not existing class yet.
Fatal Exception: java.lang.RuntimeException
Unable to instantiate activity ComponentInfo{...}: java.lang.ClassNotFoundException: Didn't find class "com....Activity" on path: DexPathList[.....]