Fixed
Status Update
Comments
da...@gmail.com <da...@gmail.com> #2
Project: platform/frameworks/support
Branch: androidx-master-dev
commit d0a10be065a3a629e3835f28d35804c91d8d2e4d
Author: Ian Lake <ilake@google.com>
Date: Mon Sep 14 16:10:06 2020
Mention the current destination in getBackStackEntry errors
Improve the debugging experience for "No destination
with ID..." errors in getBackStackEntry() by mentioning
exactly destination the NavController is on. This would
allow developers to know if they have called popBackStack()
to a destination they don't expect to be at or if
they have not called setGraph() at all (where the
current destination would be null).
Test: existing tests pass
BUG: 168311416
Change-Id: Ia96b6732d7caadbddf31b7f35a1a419407ff6e25
M navigation/navigation-runtime/src/main/java/androidx/navigation/NavController.java
https://android-review.googlesource.com/1427352
Branch: androidx-master-dev
commit d0a10be065a3a629e3835f28d35804c91d8d2e4d
Author: Ian Lake <ilake@google.com>
Date: Mon Sep 14 16:10:06 2020
Mention the current destination in getBackStackEntry errors
Improve the debugging experience for "No destination
with ID..." errors in getBackStackEntry() by mentioning
exactly destination the NavController is on. This would
allow developers to know if they have called popBackStack()
to a destination they don't expect to be at or if
they have not called setGraph() at all (where the
current destination would be null).
Test: existing tests pass
BUG: 168311416
Change-Id: Ia96b6732d7caadbddf31b7f35a1a419407ff6e25
M navigation/navigation-runtime/src/main/java/androidx/navigation/NavController.java
il...@google.com <il...@google.com> #3
We've updated the error message to make it more clear what destination you're currently on - this will help you determine if your call to setGraph()
hasn't happened yet (you have a null current destination) or if you've popped to another destination unexpectedly.
da...@gmail.com <da...@gmail.com> #4
Project: platform/frameworks/support
Branch: snap-temp-L69500000699825513
commit 6ada6bd039f4a28d2760f4912093abc60ab54d84
Author: Ian Lake <ilake@google.com>
Date: Mon Sep 14 16:10:06 2020
Mention the current destination in getBackStackEntry errors
Improve the debugging experience for "No destination
with ID..." errors in getBackStackEntry() by mentioning
exactly destination the NavController is on. This would
allow developers to know if they have called popBackStack()
to a destination they don't expect to be at or if
they have not called setGraph() at all (where the
current destination would be null).
Test: existing tests pass
BUG: 168311416
Change-Id: Ia96b6732d7caadbddf31b7f35a1a419407ff6e25
(cherry picked from commit d0a10be065a3a629e3835f28d35804c91d8d2e4d)
M navigation/navigation-runtime/src/main/java/androidx/navigation/NavController.java
https://android-review.googlesource.com/1436733
Branch: snap-temp-L69500000699825513
commit 6ada6bd039f4a28d2760f4912093abc60ab54d84
Author: Ian Lake <ilake@google.com>
Date: Mon Sep 14 16:10:06 2020
Mention the current destination in getBackStackEntry errors
Improve the debugging experience for "No destination
with ID..." errors in getBackStackEntry() by mentioning
exactly destination the NavController is on. This would
allow developers to know if they have called popBackStack()
to a destination they don't expect to be at or if
they have not called setGraph() at all (where the
current destination would be null).
Test: existing tests pass
BUG: 168311416
Change-Id: Ia96b6732d7caadbddf31b7f35a1a419407ff6e25
(cherry picked from commit d0a10be065a3a629e3835f28d35804c91d8d2e4d)
M navigation/navigation-runtime/src/main/java/androidx/navigation/NavController.java
il...@google.com <il...@google.com>
il...@google.com <il...@google.com> #5
Project: platform/frameworks/support
Branch: snap-temp-L62000000699827533
commit e5780347bfba28e4a500bd964d273c282c12dceb
Author: Ian Lake <ilake@google.com>
Date: Mon Sep 14 16:10:06 2020
Mention the current destination in getBackStackEntry errors
Improve the debugging experience for "No destination
with ID..." errors in getBackStackEntry() by mentioning
exactly destination the NavController is on. This would
allow developers to know if they have called popBackStack()
to a destination they don't expect to be at or if
they have not called setGraph() at all (where the
current destination would be null).
Test: existing tests pass
BUG: 168311416
Change-Id: Ia96b6732d7caadbddf31b7f35a1a419407ff6e25
(cherry picked from commit d0a10be065a3a629e3835f28d35804c91d8d2e4d)
M navigation/navigation-runtime/src/main/java/androidx/navigation/NavController.java
https://android-review.googlesource.com/1436737
Branch: snap-temp-L62000000699827533
commit e5780347bfba28e4a500bd964d273c282c12dceb
Author: Ian Lake <ilake@google.com>
Date: Mon Sep 14 16:10:06 2020
Mention the current destination in getBackStackEntry errors
Improve the debugging experience for "No destination
with ID..." errors in getBackStackEntry() by mentioning
exactly destination the NavController is on. This would
allow developers to know if they have called popBackStack()
to a destination they don't expect to be at or if
they have not called setGraph() at all (where the
current destination would be null).
Test: existing tests pass
BUG: 168311416
Change-Id: Ia96b6732d7caadbddf31b7f35a1a419407ff6e25
(cherry picked from commit d0a10be065a3a629e3835f28d35804c91d8d2e4d)
M navigation/navigation-runtime/src/main/java/androidx/navigation/NavController.java
Description
Version used: 1.0.0-alpha05
Devices/Android versions reproduced on: Pixel 2 (Pie) / Emulator Nougat / Pie
I Stumbled on this stacktrace in a project that use the new navigation component:
java.lang.NumberFormatException: For input string: "TRANSACTION_NAME"
at java.lang.Integer.parseInt(Integer.java:615)
at java.lang.Integer.valueOf(Integer.java:801)
at androidx.navigation.fragment.FragmentNavigator.isBackStackEqual(FragmentNavigator.java:252)
at androidx.navigation.fragment.FragmentNavigator$1.onBackStackChanged(FragmentNavigator.java:83)
at androidx.fragment.app.FragmentManagerImpl.reportBackStackChanged(FragmentManager.java:2733)
at androidx.fragment.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2439)
at androidx.fragment.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2372)
at androidx.fragment.app.FragmentManagerImpl.popBackStackImmediate(FragmentManager.java:884)
at androidx.fragment.app.FragmentManagerImpl.popBackStackImmediate(FragmentManager.java:827)
at androidx.fragment.app.FragmentManagerImpl.popBackStackImmediate(FragmentManager.java:874)
at androidx.fragment.app.FragmentManagerImpl.popBackStackImmediate(FragmentManager.java:827)
at androidx.fragment.app.FragmentActivity.onBackPressed(FragmentActivity.java:190)
at android.app.Activity.onKeyUp(Activity.java:3082)
In one of my fragment I manage an internal fragment transaction
requireFragmentManager().beginTransaction()
.addToBackStack("TRANSACTION_NAME")
.commit()
from the fragment doing this I navigate to another using the nav graph and when i press back that stack trace pop up and the app crashes.
If i use navController.navigateUp() nothing happens.
Looking in the code of FragmentNavigator I see
Integer.valueOf(mFragmentManager
.getBackStackEntryAt(fragmentBackStackIndex--)
.getName())
apparently you assume any back stack entry name is an integer.
Is this a design decision? Does that means I can't use fragment transactions on my own if I use the navigation component?
I honestly only use this to detect the user pressing back in my fragment without having to rely on the activity forwarding the information cause I have an overlay view on top of my fragment that is supposed to go away when the user press back and I don't have an `onBackPressed()` on the fragment.