nativescript-angular icon indicating copy to clipboard operation
nativescript-angular copied to clipboard

Android crashed when navigating from BottomNavigation:

Open mcalc001 opened this issue 4 years ago • 1 comments

Environment

  • CLI: 7.1.2
  • Android Runtime: 7.1.0
  • iOS Runtime: 7.1.0
  • NativeScript-Angular: 11.0.0

Describe the bug Within our app we have Tabs nested within BottomNavigation. On android device when i navigate to a page from within the Tabs android crashes. The error seems to originate from node_modules/@nativescript/core/ui/bottom-navigation/index.android.js - I have posted the full console error below.

To Reproduce Navigate to a page from within a nested Tabs page using navigation function below.

        this.routerExtensions.navigate([`/tabs/home/category/${slug}`], {
          transition: {
            name: 'slideLeft',
            duration: 300,
            curve: 'ease',
          },
        });

We have similar approach outlined in this blog post - https://nativescript.org/blog/tabs-and-bottomnavigation-nativescripts-two-new-components/

Additional context

console error:

System.err: An uncaught Exception occurred on "main" thread. System.err: Calling js method onViewAttachedToWindow failed System.err: Error: java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first. System.err: System.err: StackTrace: System.err: commitCurrentTransaction(file: node_modules/@nativescript/core/ui/bottom-navigation/index.android.js:369:0) System.err: at changeTab(file: node_modules/@nativescript/core/ui/bottom-navigation/index.android.js:387:0) System.err: at _onAttachedToWindow(file: node_modules/@nativescript/core/ui/bottom-navigation/index.android.js:319:0) System.err: at AttachListener.onViewAttachedToWindow(file: node_modules/@nativescript/core/ui/bottom-navigation/index.android.js:163:0) System.err: at com.tns.Runtime.callJSMethodNative(Native Method) System.err: at com.tns.Runtime.dispatchCallJSMethodNative(Runtime.java:1302) System.err: at com.tns.Runtime.callJSMethodImpl(Runtime.java:1188) System.err: at com.tns.Runtime.callJSMethod(Runtime.java:1175) System.err: at com.tns.Runtime.callJSMethod(Runtime.java:1153) System.err: at com.tns.Runtime.callJSMethod(Runtime.java:1149) System.err: at com.tns.gen.java.lang.Object_vendor_113136_28_AttachListener.onViewAttachedToWindow(Object_vendor_113136_28_AttachListener.java:18) System.err: at android.view.View.dispatchAttachedToWindow(View.java:20490) System.err: at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3489) System.err: at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3496) System.err: at android.view.ViewGroup.addViewInner(ViewGroup.java:5278) System.err: at android.view.ViewGroup.addView(ViewGroup.java:5064) System.err: at android.view.ViewGroup.addView(ViewGroup.java:5004) System.err: at android.view.ViewGroup.addView(ViewGroup.java:4976) System.err: at android.view.ViewOverlay$OverlayViewGroup.add(ViewOverlay.java:208) System.err: at android.view.ViewGroupOverlay.add(ViewGroupOverlay.java:72) System.err: at androidx.transition.ViewGroupOverlayApi18.add(ViewGroupOverlayApi18.java:48) System.err: at androidx.transition.Visibility.onDisappear(Visibility.java:428) System.err: at androidx.transition.Visibility.createAnimator(Visibility.java:257) System.err: at androidx.transition.Transition.createAnimators(Transition.java:747) System.err: at androidx.transition.TransitionSet.createAnimators(TransitionSet.java:480) System.err: at androidx.transition.Transition.playTransition(Transition.java:1821) System.err: at androidx.transition.TransitionManager$MultiListener.onPreDraw(TransitionManager.java:301) System.err: at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:1093) System.err: at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3094) System.err: at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1948) System.err: at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:8177) System.err: at android.view.Choreographer$CallbackRecord.run(Choreographer.java:972) System.err: at android.view.Choreographer.doCallbacks(Choreographer.java:796) System.err: at android.view.Choreographer.doFrame(Choreographer.java:731) System.err: at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:957) System.err: at android.os.Handler.handleCallback(Handler.java:938) System.err: at android.os.Handler.dispatchMessage(Handler.java:99) System.err: at android.os.Looper.loop(Looper.java:223) System.err: at android.app.ActivityThread.main(ActivityThread.java:7660) System.err: at java.lang.reflect.Method.invoke(Native Method) System.err: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) System.err: Caused by: java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first. System.err: at android.view.ViewGroup.addViewInner(ViewGroup.java:5235) System.err: at android.view.ViewGroup.addView(ViewGroup.java:5064) System.err: at androidx.viewpager.widget.ViewPager.addView(ViewPager.java:1485) System.err: at android.view.ViewGroup.addView(ViewGroup.java:5004) System.err: at android.view.ViewGroup.addView(ViewGroup.java:4976) System.err: at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:326) System.err: at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1199) System.err: at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1368) System.err: at androidx.fragment.app.FragmentManager.moveFragmentToExpectedState(FragmentManager.java:1446) System.err: at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1509) System.err: at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:2637) System.err: at androidx.fragment.app.FragmentManager.dispatchActivityCreated(FragmentManager.java:2589) System.err: at androidx.fragment.app.Fragment.performActivityCreated(Fragment.java:2723) System.err: at androidx.fragment.app.FragmentStateManager.activityCreated(FragmentStateManager.java:346) System.err: at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1200) System.err: at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1368) System.err: at androidx.fragment.app.FragmentManager.moveFragmentToExpectedState(FragmentManager.java:1446) System.err: at androidx.fragment.app.BackStackRecord.executeOps(BackStackRecord.java:442) System.err: at androidx.fragment.app.FragmentManager.executeOps(FragmentManager.java:2181) System.err: at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:2004) System.err: at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1959) System.err: at androidx.fragment.app.FragmentManager.execSingleAction(FragmentManager.java:1830) System.err: at androidx.fragment.app.BackStackRecord.commitNowAllowingStateLoss(BackStackRecord.java:303)

Thank you in advance. This is a critical error for us. Any help is welcome :)

mcalc001 avatar Jan 15 '21 08:01 mcalc001

facing same issue

Falu-G avatar Jan 15 '21 18:01 Falu-G