diff --git a/ui/frame/frame.android.ts b/ui/frame/frame.android.ts index 184e1248e..f83a9179f 100644 --- a/ui/frame/frame.android.ts +++ b/ui/frame/frame.android.ts @@ -512,6 +512,13 @@ class AndroidFrame extends Observable implements definition.AndroidFrame { } function findPageForFragment(fragment: android.app.Fragment, frame: Frame) { + if (!fragment) { + if (trace.enabled) { + trace.write(`Can't find page for a null fragment.`, trace.categories.NativeLifecycle); + } + return; + } + var fragmentTag = fragment.getTag(); var page: pages.Page; var entry: definition.BackstackEntry; @@ -698,15 +705,12 @@ class FragmentClass extends android.app.Fragment { super.onDestroy(); this.entry.fragmentTag = undefined; - this.entry = undefined; - this.frame = undefined; - this.clearHistory = undefined; transitionModule._clearBackwardTransitions(this); transitionModule._clearForwardTransitions(this); } public toString(): string { - return `${this.getTag()}<${(this.entry && this.entry.resolvedPage) ? this.entry.resolvedPage : ""}>`; + return `${this ? this.getTag() : ""}<${(this.entry && this.entry.resolvedPage) ? this.entry.resolvedPage : ""}>`; } } diff --git a/ui/transition/transition.android.ts b/ui/transition/transition.android.ts index b8ba8fb5c..b67f1cbe8 100644 --- a/ui/transition/transition.android.ts +++ b/ui/transition/transition.android.ts @@ -35,6 +35,9 @@ export module AndroidTransitionType { } export function _clearBackwardTransitions(fragment: any): void { + if (!fragment) { + return; + } var expandedFragment = fragment; if (expandedFragment.enterPopExitTransition) { if (trace.enabled) { @@ -62,6 +65,9 @@ export function _clearBackwardTransitions(fragment: any): void { } export function _clearForwardTransitions(fragment: any): void { + if (!fragment) { + return; + } var expandedFragment = fragment; if (expandedFragment.exitPopEnterTransition) { if (trace.enabled) {