Embedding a Xamarin.Forms fragment in a fragment causing "child already has a parent" crash - android-fragments

I'm working on a library that would allow you to use Xamarin.Forms Pages with the native navigation service provided by MvvmCross.
The Android implementation has an issue when using Fragments. If you look at the library / sample project a crash occurs when you press the back button after loading the second fragment.
Steps to Reproduce:
Launch App
Press "Fragment Navigation Stack"
Press "Next"
Press the back button.
I've been pulling my hair out trying to figure out how to stop this error from occurring.
The app crashes with this error.
Java.Lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
--- End of managed Java.Lang.IllegalStateException stack trace ---
java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
at android.view.ViewGroup.addViewInner(ViewGroup.java:5106)
at android.view.ViewGroup.addView(ViewGroup.java:4935)
at android.view.ViewGroup.addView(ViewGroup.java:4875)
at android.view.ViewGroup.addView(ViewGroup.java:4848)
at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:326)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1199)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1368)
at androidx.fragment.app.FragmentManager.moveFragmentToExpectedState(FragmentManager.java:1446)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1509)
at androidx.fragment.app.BackStackRecord.executeOps(BackStackRecord.java:447)
at androidx.fragment.app.FragmentManager.executeOps(FragmentManager.java:2181)
at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:2004)
at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1959)
at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1861)
at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:2641)
at androidx.fragment.app.FragmentManager.dispatchActivityCreated(FragmentManager.java:2589)
at androidx.fragment.app.Fragment.performActivityCreated(Fragment.java:2723)
at androidx.fragment.app.FragmentStateManager.activityCreated(FragmentStateManager.java:346)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1200)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1368)
at androidx.fragment.app.FragmentManager.moveFragmentToExpectedState(FragmentManager.java:1446)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1509)
at androidx.fragment.app.BackStackRecord.executePopOps(BackStackRecord.java:510)
at androidx.fragment.app.FragmentManager.executeOps(FragmentManager.java:2178)
at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:2004)
at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1959)
at androidx.fragment.app.FragmentManager.popBackStackImmediate(FragmentManager.java:670)
at androidx.fragment.app.FragmentManager.popBackStackImmediate(FragmentManager.java:581)
at androidx.fragment.app.FragmentManager.handleOnBackPressed(FragmentManager.java:553)
at androidx.fragment.app.FragmentManager$1.handleOnBackPressed(FragmentManager.java:350)
at androidx.activity.OnBackPressedDispatcher.onBackPressed(OnBackPressedDispatcher.java:192)
at androidx.activity.ComponentActivity.onBackPressed(ComponentActivity.java:314)
at android.app.Activity.onKeyUp(Activity.java:3641)
at android.view.KeyEvent.dispatch(KeyEvent.java:2825)
at android.app.Activity.dispatchKeyEvent(Activity.java:3958)
at androidx.core.app.ComponentActivity.superDispatchKeyEvent(ComponentActivity.java:122)
at androidx.core.view.KeyEventDispatcher.dispatchKeyEvent(KeyEventDispatcher.java:84)
at androidx.core.app.ComponentActivity.dispatchKeyEvent(ComponentActivity.java:140)
at androidx.appcompat.app.AppCompatActivity.dispatchKeyEvent(AppCompatActivity.java:569)
at androidx.appcompat.view.WindowCallbackWrapper.dispatchKeyEvent(WindowCallbackWrapper.java:59)
at androidx.appcompat.app.AppCompatDelegateImpl$AppCompatWindowCallback.dispatchKeyEvent(AppCompatDelegateImpl.java:3054)
at com.android.internal.policy.DecorView.dispatchKeyEvent(DecorView.java:367)
at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:5413)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:5281)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4788)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4841)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4807)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4947)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4815)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:5004)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4788)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4841)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4807)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4815)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4788)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4841)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4807)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4980)
at android.view.ViewRootImpl$ImeInputStage.onFinishedInputEvent(ViewRootImpl.java:5141)
at android.view.inputmethod.InputMethodManager$PendingEvent.run(InputMethodManager.java:3064)
at android.view.inputmethod.InputMethodManager.invokeFinishedInputEventCallback(InputMethodManager.java:2607)
at android.view.inputmethod.InputMethodManager.finishedInputEvent(InputMethodManager.java:2598)
at android.view.inputmethod.InputMethodManager$ImeInputEventSender.onInputEventFinished(InputMethodManager.java:3041)
at android.view.InputEventSender.dispatchInputEventFinished(InputEventSender.java:143)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:336)
at android.os.Looper.loop(Looper.java:174)
at android.app.ActivityThread.main(ActivityThread.java:7356)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)

Related

Nextjs breaks when hash links are pressed quickly

I have links leading to hashed locations that reference IDs . When I press links relatively quickly i get this error :
Unhandled Runtime Error
Error: Cancel rendering route
What is the solution to this problem ? Maybe use Router events like 'hashChangeStart'/'hashChangeEnd' ?enter image description here
Error stack:
https://pastebin.com/2haS2SE4

Unable to create Actual tools in workorder

Hi I am not able to add actual tools in Maximo Anywhere work execution app. I am getting below error :-
Logger.js:326 2019-01-08, 06:36:59.730[ERROR] [ERROR]Error: Failed to set the 'ed98af739ccb7bf61380e39dea7ca67ad15991af_workOrder' property on 'Storage': Setting the value of 'ed98af739ccb7bf61380e39dea7ca67ad15991af_workOrder' exceeded the quota.
at Object._setData (http://cwa100723d:10080/MaximoAnywhere/apps/services/preview/WorkExecution/android/7.6.3/default/js/platform/store/internal/LocalStorageCollection.js:96:33)
at Object._storeInLocalStorage (http://cwa100723d:10080/MaximoAnywhere/apps/services/preview/WorkExecution/android/7.6.3/default/js/platform/store/internal/LocalStorageCollection.js:359:9)
at Object.replace (http://cwa100723d:10080/MaximoAnywhere/apps/services/preview/WorkExecution/android/7.6.3/default/js/platform/store/internal/LocalStorageCollection.js:286:11)
at Object. (http://cwa100723d:10080/MaximoAnywhere/apps/services/preview/WorkExecution/android/7.6.3/default/js/platform/store/PersistenceManager.js:876:49)
Has anybody found same issue

Autolayout and subviews

I am using the iAd suite with storyboards from Apple, as per this link...
Apple iAd Storyboard documentation
It all works fine until I turn autolayout on. It builds fine but crashes on running. The output I get is:
2013-08-24 12:06:36.138 TabbedBanner[7272:c07] * Assertion failure in -[UIView layoutSublayersOfLayer:], /SourceCache/UIKit_Sim/UIKit-2380.17/UIView.m:5781
2013-08-24 12:06:36.139 TabbedBanner[7272:c07] * Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Auto Layout still required after sending -viewDidLayoutSubviews to the view controller. BannerViewController's implementation needs to send -layoutSubviews to the view to invoke auto layout.'
*** First throw call stack:
(0x1e27012 0x110ee7e 0x1e26e78 0xba4665 0xa347a 0x11226b0 0x1358fc0 0x134d33c 0x1358eaf 0x1422bd 0x8ab56 0x8966f 0x89589 0x887e4 0x883ef 0x65c9d 0x5098b 0x5194b 0x62cb5 0x63beb 0x55698 0x1700df9 0x1700ad0 0x1d9cbf5 0x1d9c962 0x1dcdbb6 0x1dccf44 0x1dcce1b 0x5117a 0x52ffc 0x2a0d 0x2935)
libc++abi.dylib: terminate called throwing an exception
(lldb)
I know it is something to do with the subviews in storyboard but I dont know how to correct this error. I am pretty new to iOS and trying to teach myself so any help is appreciated. Many Thanks
Add:
[self.view layoutIfNeeded];
to the end of this method
- (void)viewDidLayoutSubviews
inside your BannerViewController

Flex Air program crash when press TAB key

this problem block me for two days. When i launch my Flex Air program, then if I press TAB key, it will crash and show
ArgumentError: Error #2025: The supplied DisplayObject must be a child of the caller.
at flash.display::DisplayObjectContainer/getChildIndex()
at mx.core::Container/getChildIndex()[E:\dev\4.y\frameworks\projects\mx\src\mx\core\Container.as:2835]
at mx.containers::Panel/getChildIndex()[E:\dev\4.y\frameworks\projects\mx\src\mx\containers\Panel.as:1179]
at fl.managers::FocusManager/getChildIndex()
at fl.managers::FocusManager/sortByDepth()
at Array$/_sort()
at Array/http://adobe.com/AS3/2006/builtin::sort()
at fl.managers::FocusManager/sortFocusableObjects()
at fl.managers::FocusManager/keyDownHandler()
how to fix? thanks.

Crashed when pop out of a UINavigationController

I have several viewControllers controlled by a navigation controller.
For example, viewController A and viewController B can both push viewController C into the navigation stack and ask C to do some saving (actually means the same to C).
in the saving method of C, the last line of code is
[self.navigationController popViewControllerAnimated:YES];
But problem is,
If I push to C from A, after I save something and pop back to A, things goes well.
But if I push C to from B, after I do the same thing and pop back to B, app crashes,
with my debugging, I found that app crashed not in C's code,
but after B's viewWillAppear method, here I mean after, B correctly runs all of the codes in viewWillAppear,
but then crashes somewhere I don't know how to trace to.
and the Error is very strange to me:
2012-02-13 00:29:30.975 EasyWallet[43116:707] *** Terminating app due to uncaught exception
'NSInvalidArgumentException', reason: '*** -[__NSCFConstantString stringByAppendingString:]: nil argument'
*** First throw call stack:
(0x344268bf 0x346761e5 0x344267b9 0x344267db 0x35d72121 0x2ce7b 0x2ba75 0x3782f9cb 0x3782eaa9
0x3782e233 0x377d2d4b 0x3438522b 0x34f16381 0x34f15f99 0x34f1a11b 0x34f19e57 0x34f11d85
0x343fab4b 0x343f8d87 0x343f90e1 0x3437c4dd 0x3437c3a5 0x30c00fcd 0x377fd743 0x2179 0x2138)
terminate called throwing an exception(gdb)
I just don't know how to fix it.
While dealing with number of viewControllers and views, it happens that frequent crashes occurs. I also had same problem when not using ARC. At that time i found the best way out is using following link to get into exact crash. The only thing is you need to carefully analyzed the result at console and should judge it better way...
http://www.cocoadev.com/DebuggingAutorelease.html

Resources