diff --git a/lib/android/src/main/java/com/airbnb/android/react/navigation/ScreenCoordinator.java b/lib/android/src/main/java/com/airbnb/android/react/navigation/ScreenCoordinator.java index 1d89d4c7..8b2237f0 100644 --- a/lib/android/src/main/java/com/airbnb/android/react/navigation/ScreenCoordinator.java +++ b/lib/android/src/main/java/com/airbnb/android/react/navigation/ScreenCoordinator.java @@ -109,6 +109,10 @@ public void pushScreen(Fragment fragment, @Nullable Bundle options) { ft.setCustomAnimations(anim.enter, anim.exit, anim.popEnter, anim.popExit); } BackStack bsi = getCurrentBackStack(); + if (bsi == null) { + Log.w(TAG, "Trying to push with a null BackStack."); + return; + } ft .detach(currentFragment) .add(container.getId(), fragment) @@ -209,6 +213,10 @@ public void onBackPressed() { public void pop() { BackStack bsi = getCurrentBackStack(); + if (bsi == null) { + Log.w(TAG, "Trying to pop with a null BackStack."); + return; + } if (bsi.getSize() == 1) { dismiss(); return; @@ -281,7 +289,10 @@ private Fragment getCurrentFragment() { } private BackStack getCurrentBackStack() { - return backStacks.peek(); + if (backStacks.size() > 0) { + return backStacks.peek(); + } + return null; } @NonNull