`onDetachedFromWindow` triggered incorrectly
See original GitHub issueDescription
View that was part ScreenContainer received onDetachedFromWindow multiple times or before onAttachedToWindow (unlikely) causing this Google Cast Button View to try and unregister an un-registered receiver. This doesn’t happen when I set enabledScreens(false)
Fatal Exception: java.lang.IllegalArgumentException: Receiver not registered: androidx.mediarouter.app.MediaRouteButton$ConnectivityReceiver@82cf304
at android.app.LoadedApk.forgetReceiverDispatcher(LoadedApk.java:1499)
at android.app.ContextImpl.unregisterReceiver(ContextImpl.java:1605)
at android.content.ContextWrapper.unregisterReceiver(ContextWrapper.java:678)
at androidx.mediarouter.app.MediaRouteButton$ConnectivityReceiver.unregisterReceiver(MediaRouteButton.java:871)
at androidx.mediarouter.app.MediaRouteButton.onDetachedFromWindow(MediaRouteButton.java:562)
at com.reactnative.googlecast.components.RNGoogleCastButtonManager$ColorableMediaRouteButton.onDetachedFromWindow(RNGoogleCastButtonManager.java:111)
at android.view.View.dispatchDetachedFromWindow(View.java:21358)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:4641)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:4641)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:4641)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:4641)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:4641)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:4641)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:4641)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:4641)
at android.view.ViewGroup.removeAllViewsInLayout(ViewGroup.java:6499)
at android.view.ViewGroup.removeAllViews(ViewGroup.java:6445)
at com.swmansion.rnscreens.ScreenContainer.onDetachedFromWindow(ScreenContainer.java:309)
at android.view.View.dispatchDetachedFromWindow(View.java:21358)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:4649)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:4641)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:4641)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:4641)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:4641)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:4641)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:4641)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:4641)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:4641)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:4641)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:4641)
at android.view.ViewGroup.removeViewInternal(ViewGroup.java:6287)
at android.view.ViewGroup.removeViewInternal(ViewGroup.java:6258)
at android.view.ViewGroup.removeView(ViewGroup.java:6189)
at com.swmansion.rnscreens.ScreenContainer.removeView(ScreenContainer.java:84)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1250)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1356)
at androidx.fragment.app.FragmentManager.moveFragmentToExpectedState(FragmentManager.java:1434)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1504)
at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:2007)
at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1953)
at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1849)
at androidx.fragment.app.FragmentManager$4.run(FragmentManager.java:413)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:237)
at android.app.ActivityThread.main(ActivityThread.java:8167)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:496)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1100)
Package versions
- React: 16.13.1
- React Native: 0.63.4
- React Native Screens: 3.1.1
Issue Analytics
- State:
- Created 2 years ago
- Comments:6 (3 by maintainers)
Top Results From Across the Web
CustomView lifecycle onDetachedFromWindow() not fired
I just removed onAttachedToWindow/onDetachedFromWindow and added onWindowVisibilityChanged instead. What I would like to know is drawbacks of ...
Read more >Developers - `onDetachedFromWindow` triggered incorrectly -
View that was part ScreenContainer received onDetachedFromWindow twice or before onAttachedToWindow (unlikely) causing this Google Cast Button View to try ...
Read more >Android leak pattern: subscriptions in views - Square Developer
I was recently looking at a LeakCanary report, which was caused by ... onDetachedFromWindow() was not being called, which created the leak.
Read more >DataSetObserver gets unregistered twice [36936923]
onDetachedFromWindow () gets called twice when the activity restarts meaning that, incorrectly, Android tries to unregister a null DataSetObserver.
Read more >806108 - Zillow App Crash: LollipopWebContentsAccessibility
When the class calls onAttachToWindow() it will try/catch the register of their BroadcastReceiver but in the onDetachedFromWindow() they do ...
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found

@WoLewicki #985 fixed this issue
@kacperkapusciak
$ npx react-native init MyApp --template react-native-template-typescript@6.5.13 $ yarn add react-native-google-cast $ yarn add <react-navigation’s required dependencies>
and apply required configs https://react-native-google-cast.github.io/docs/getting-started/installation#android https://react-native-google-cast.github.io/docs/getting-started/setup#android https://github.com/software-mansion/react-native-screens#android https://docs.swmansion.com/react-native-gesture-handler/docs/#android
also I created a sample private repo and I invited you as a collaborator