Closed vsfeedback closed 3 years ago
Related #8262
Workaround-https://github.com/xamarin/Xamarin.Forms/issues/8262#issuecomment-550022425
Building a custom renderer for a ListView or its cells is one approach to reducing the effect of layout calculations on scrolling performance. ListView best practices-https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/listview/performance
Try to implement INotifyPropertyChanged (System.ComponentModel) for the class which contains the ListView.
Set the handler for public event PropertyChangedEventHandler PropertyChanged
as follows for the set accessor of the property modified-
var args = new PropertyChangedEventArgs(nameOf(typeOf(string)));
PropertyChanged?.Invoke(this, args);
Related #10159
Can you please attach a small project that demonstrates this issue? Thanks!
I'm also facing the same issue crashing my app
Stack Trace:
Cannot access a disposed object. Object name: 'Xamarin.Forms.Platform.Android.FastRenderers.LabelRenderer'.
Java.Interop.JniPeerMembers.AssertSelf(Java.Interop.IJavaPeerable self) in <26521a5118b44c858c385715922b9d5d>
Java.Interop.JniPeerMembers+JniInstanceMethods.InvokeNonvirtualObjectMethod(System.String encodedMember, Java.Interop.IJavaPeerable self, Java.Interop.JniArgumentValue* parameters) in <26521a5118b44c858c385715922b9d5d>
Android.Views.View.get_Context() in <4ccdb3137d974856b786e1aeebbfbab6>
Xamarin.Forms.Platform.Android.Platform.GetNativeSize(Xamarin.Forms.VisualElement view, System.Double widthConstraint, System.Double heightConstraint) in D:\a\1\s\Xamarin.Forms.Platform.Android\Platform.cs:1341
Xamarin.Forms.Forms+AndroidPlatformServices.GetNativeSize(Xamarin.Forms.VisualElement view, System.Double widthConstraint, System.Double heightConstraint) in D:\a\1\s\Xamarin.Forms.Platform.Android\Forms.cs:930
Xamarin.Forms.VisualElement.OnSizeRequest(System.Double widthConstraint, System.Double heightConstraint) in D:\a\1\s\Xamarin.Forms.Core\VisualElement.cs:800
Xamarin.Forms.VisualElement.OnMeasure(System.Double widthConstraint, System.Double heightConstraint) in D:\a\1\s\Xamarin.Forms.Core\VisualElement.cs:783
Xamarin.Forms.VisualElement.GetSizeRequest(System.Double widthConstraint, System.Double heightConstraint) in D:\a\1\s\Xamarin.Forms.Core\VisualElement.cs:659
Xamarin.Forms.VisualElement.Measure(System.Double widthConstraint, System.Double heightConstraint, Xamarin.Forms.MeasureFlags flags) in D:\a\1\s\Xamarin.Forms.Core\VisualElement.cs:717
Xamarin.Forms.StackLayout.CalculateNaiveLayout(Xamarin.Forms.StackLayout+LayoutInformation layout, Xamarin.Forms.StackOrientation orientation, System.Double x, System.Double y, System.Double widthConstraint, System.Double heightConstraint) in D:\a\1\s\Xamarin.Forms.Core\StackLayout.cs:163
Xamarin.Forms.StackLayout.CalculateLayout(Xamarin.Forms.StackLayout+LayoutInformation layout, System.Double x, System.Double y, System.Double widthConstraint, System.Double heightConstraint, System.Boolean processExpanders) in D:\a\1\s\Xamarin.Forms.Core\StackLayout.cs:123
Xamarin.Forms.StackLayout.OnSizeRequest(System.Double widthConstraint, System.Double heightConstraint) in D:\a\1\s\Xamarin.Forms.Core\StackLayout.cs:80
Xamarin.Forms.VisualElement.OnMeasure(System.Double widthConstraint, System.Double heightConstraint) in D:\a\1\s\Xamarin.Forms.Core\VisualElement.cs:783
Xamarin.Forms.VisualElement.GetSizeRequest(System.Double widthConstraint, System.Double heightConstraint) in D:\a\1\s\Xamarin.Forms.Core\VisualElement.cs:659
Xamarin.Forms.Layout.GetSizeRequest(System.Double widthConstraint, System.Double heightConstraint) in D:\a\1\s\Xamarin.Forms.Core\Layout.cs:132
Xamarin.Forms.VisualElement.Measure(System.Double widthConstraint, System.Double heightConstraint, Xamarin.Forms.MeasureFlags flags) in D:\a\1\s\Xamarin.Forms.Core\VisualElement.cs:717
Xamarin.Forms.StackLayout.CalculateNaiveLayout(Xamarin.Forms.StackLayout+LayoutInformation layout, Xamarin.Forms.StackOrientation orientation, System.Double x, System.Double y, System.Double widthConstraint, System.Double heightConstraint) in D:\a\1\s\Xamarin.Forms.Core\StackLayout.cs:198
Xamarin.Forms.StackLayout.CalculateLayout(Xamarin.Forms.StackLayout+LayoutInformation layout, System.Double x, System.Double y, System.Double widthConstraint, System.Double heightConstraint, System.Boolean processExpanders) in D:\a\1\s\Xamarin.Forms.Core\StackLayout.cs:123
Xamarin.Forms.StackLayout.LayoutChildren(System.Double x, System.Double y, System.Double width, System.Double height) in D:\a\1\s\Xamarin.Forms.Core\StackLayout.cs:58
Xamarin.Forms.Layout.UpdateChildrenLayout() in D:\a\1\s\Xamarin.Forms.Core\Layout.cs:266
Xamarin.Forms.Layout.OnSizeAllocated(System.Double width, System.Double height) in D:\a\1\s\Xamarin.Forms.Core\Layout.cs:224
Xamarin.Forms.VisualElement.SizeAllocated(System.Double width, System.Double height) in D:\a\1\s\Xamarin.Forms.Core\VisualElement.cs:805
Xamarin.Forms.Layout.ResolveLayoutChanges() in D:\a\1\s\Xamarin.Forms.Core\Layout.cs:392
Java.Lang.Thread+RunnableImplementor.Run() in <4ccdb3137d974856b786e1aeebbfbab6>
Java.Lang.IRunnableInvoker.n_Run(System.IntPtr jnienv, System.IntPtr native__this) in <4ccdb3137d974856b786e1aeebbfbab6>
(wrapper dynamic-method) Android.Runtime.DynamicMethodNameCounter.48(intptr,intptr)
Downgrading XF to version 4.4.0.991864 solved the issue on our production app. Credits: https://github.com/xamarin/Xamarin.Forms/issues/10159#issuecomment-633838442
Can you please attach a small project that demonstrates this issue? Thanks!
@samhouts I can't publish the source code, it's a commercial application ... and it can only work with data.
Can you please attach a small project that demonstrates this issue? Thanks!
@samhouts unfortunately I can't publish the code due to contractual reasons
Hello, just checking if there are any timelines on by when the fix would be available. We have a major release going out and is now on hold just because of this issue after we upgraded our Xamarin framework. At this point we can't go back to the old framework as well.
Please help.
These issues are very difficult to resolve without a reproduction. You may be able to work around it by enabling the legacy renderers. If you're able to post a reproduction project, we may be able to resolve the issue fully. Thank you!
These issues are very difficult to resolve without a reproduction. You may be able to work around it by enabling the legacy renderers. If you're able to post a reproduction project, we may be able to resolve the issue fully. Thank you!
I understand, I am trying to reproduce on a test project.
These issues are very difficult to resolve without a reproduction. You may be able to work around it by enabling the legacy renderers. If you're able to post a reproduction project, we may be able to resolve the issue fully. Thank you!
@samhouts, I tried enabling the legacy renderers as per the provided instructions however surprisingly the error still persists!
I tried cleaning the solution, closing/opening VS but the error still persists.
Please suggest. Any help in this regard would be immensely helpful!
Hello,
Trying to follow up to see if there are any updates yet or when to expect updates on this?
we are also experience the issue, it is really hard to reproduce, the app crashes randomly, The issue started happening after upgrading from Xamarin form 4.4 to 4.6.0726.
I need to move this to resource blocked until we can get a reproduction.
@samhouts This looks very similar to #10159 which is quite a serious issue. Can you please take a look on it? There is comment offering repro sample.
I have created a sample repository where you can see this exception: https://github.com/nacompllo/CannotDisposeLabelRenderer
I have also posted a video showing how to reproduce the error: https://www.youtube.com/watch?v=yDhlI4BG8D8&feature=youtu.be
When I add a binding to the FontSize property of a Label inside a CollectionView and make rotations with the device (in each rotation change I update the FontSize of the Labels of the CollectionView).
System.ObjectDisposedException: 'Cannot access a disposed object. Object name: 'Xamarin.Forms.Platform.Android.FastRenderers.LabelRenderer'.'
Add elements to the Source of the CollectionView while making rotations with the device.
@samhouts After doing some tests on my machine with the Xamarin.Forms repository I have followed the trace of the error and it happens exactly in this line of the Platform.cs class: https://github.com/xamarin/Xamarin.Forms/blob/29b92aa1fc2b9d834bb3b95cc224e07d0cc3e9b4/Xamarin.Forms.Platform.Android/Platform.cs#L1341
I have wrapped the method in a try catch to get the StackTrace and this is the result:
at Java.Interop.JniPeerMembers.AssertSelf (Java.Interop.IJavaPeerable self) [0x00029] in
Anyone have got the solution for this??
I'm facing same error in my project. I have Xamarin.Forms 4.6.0.726 version. Stack trace:
at Java.Interop.JniPeerMembers.AssertSelf (Java.Interop.IJavaPeerable self) [0x00029] in <dac4c5a4b77f4e61a5e6d9d3050dfb9f>:0
at Java.Interop.JniPeerMembers+JniInstanceMethods.InvokeNonvirtualObjectMethod (System.String encodedMember, Java.Interop.IJavaPeerable self, Java.Interop.JniArgumentValue* parameters) [0x00000] in <dac4c5a4b77f4e61a5e6d9d3050dfb9f>:0
at Android.Views.View.get_Context () [0x00000] in /Users/builder/azdo/_work/204/s/xamarin-android/src/Mono.Android/obj/Release/monoandroid10/android-29/mcw/Android.Views.View.cs:5598
at Xamarin.Forms.Platform.Android.Platform.GetNativeSize (Xamarin.Forms.VisualElement view, System.Double widthConstraint, System.Double heightConstraint) [0x00019] in D:\a\1\s\Xamarin.Forms.Platform.Android\Platform.cs:1341
at Xamarin.Forms.Forms+AndroidPlatformServices.GetNativeSize (Xamarin.Forms.VisualElement view, System.Double widthConstraint, System.Double heightConstraint) [0x00000] in D:\a\1\s\Xamarin.Forms.Platform.Android\Forms.cs:930
at Xamarin.Forms.VisualElement.OnSizeRequest (System.Double widthConstraint, System.Double heightConstraint) [0x00025] in D:\a\1\s\Xamarin.Forms.Core\VisualElement.cs:800
at Xamarin.Forms.VisualElement.OnMeasure (System.Double widthConstraint, System.Double heightConstraint) [0x00000] in D:\a\1\s\Xamarin.Forms.Core\VisualElement.cs:783
at Xamarin.Forms.VisualElement.GetSizeRequest (System.Double widthConstraint, System.Double heightConstraint) [0x00053] in D:\a\1\s\Xamarin.Forms.Core\VisualElement.cs:659
at Xamarin.Forms.VisualElement.Measure (System.Double widthConstraint, System.Double heightConstraint, Xamarin.Forms.MeasureFlags flags) [0x00054] in D:\a\1\s\Xamarin.Forms.Core\VisualElement.cs:717
at Xamarin.Forms.Grid.CalculateAutoCells (System.Double width, System.Double height) [0x000e5] in D:\a\1\s\Xamarin.Forms.Core\GridCalc.cs:133
at Xamarin.Forms.Grid.MeasureGrid (System.Double width, System.Double height, System.Boolean requestSize) [0x0000c] in D:\a\1\s\Xamarin.Forms.Core\GridCalc.cs:485
at Xamarin.Forms.Grid.OnSizeRequest (System.Double widthConstraint, System.Double heightConstraint) [0x0002a] in D:\a\1\s\Xamarin.Forms.Core\GridCalc.cs:60
at Xamarin.Forms.VisualElement.OnMeasure (System.Double widthConstraint, System.Double heightConstraint) [0x00000] in D:\a\1\s\Xamarin.Forms.Core\VisualElement.cs:783
at Xamarin.Forms.VisualElement.GetSizeRequest (System.Double widthConstraint, System.Double heightConstraint) [0x00053] in D:\a\1\s\Xamarin.Forms.Core\VisualElement.cs:659
at Xamarin.Forms.Layout.GetSizeRequest (System.Double widthConstraint, System.Double heightConstraint) [0x00000] in D:\a\1\s\Xamarin.Forms.Core\Layout.cs:132
at Xamarin.Forms.VisualElement.Measure (System.Double widthConstraint, System.Double heightConstraint, Xamarin.Forms.MeasureFlags flags) [0x00054] in D:\a\1\s\Xamarin.Forms.Core\VisualElement.cs:717
at Xamarin.Forms.TemplatedView.OnSizeRequest (System.Double widthConstraint, System.Double heightConstraint) [0x0003c] in D:\a\1\s\Xamarin.Forms.Core\TemplatedView.cs:43
at Xamarin.Forms.VisualElement.OnMeasure (System.Double widthConstraint, System.Double heightConstraint) [0x00000] in D:\a\1\s\Xamarin.Forms.Core\VisualElement.cs:783
at Xamarin.Forms.VisualElement.GetSizeRequest (System.Double widthConstraint, System.Double heightConstraint) [0x00053] in D:\a\1\s\Xamarin.Forms.Core\VisualElement.cs:659
at Xamarin.Forms.Layout.GetSizeRequest (System.Double widthConstraint, System.Double heightConstraint) [0x00000] in D:\a\1\s\Xamarin.Forms.Core\Layout.cs:132
at Xamarin.Forms.VisualElement.Measure (System.Double widthConstraint, System.Double heightConstraint, Xamarin.Forms.MeasureFlags flags) [0x00054] in D:\a\1\s\Xamarin.Forms.Core\VisualElement.cs:717
at Xamarin.Forms.StackLayout.CalculateNaiveLayout (Xamarin.Forms.StackLayout+LayoutInformation layout, Xamarin.Forms.StackOrientation orientation, System.Double x, System.Double y, System.Double widthConstraint, System.Double heightConstraint) [0x000a8] in D:\a\1\s\Xamarin.Forms.Core\StackLayout.cs:163
at Xamarin.Forms.StackLayout.CalculateLayout (Xamarin.Forms.StackLayout+LayoutInformation layout, System.Double x, System.Double y, System.Double widthConstraint, System.Double heightConstraint, System.Boolean processExpanders) [0x00058] in D:\a\1\s\Xamarin.Forms.Core\StackLayout.cs:123
at Xamarin.Forms.StackLayout.OnSizeRequest (System.Double widthConstraint, System.Double heightConstraint) [0x00019] in D:\a\1\s\Xamarin.Forms.Core\StackLayout.cs:80
at Xamarin.Forms.VisualElement.OnMeasure (System.Double widthConstraint, System.Double heightConstraint) [0x00000] in D:\a\1\s\Xamarin.Forms.Core\VisualElement.cs:783
at Xamarin.Forms.VisualElement.GetSizeRequest (System.Double widthConstraint, System.Double heightConstraint) [0x00053] in D:\a\1\s\Xamarin.Forms.Core\VisualElement.cs:659
at Xamarin.Forms.Layout.GetSizeRequest (System.Double widthConstraint, System.Double heightConstraint) [0x00000] in D:\a\1\s\Xamarin.Forms.Core\Layout.cs:132
at Xamarin.Forms.VisualElement.Measure (System.Double widthConstraint, System.Double heightConstraint, Xamarin.Forms.MeasureFlags flags) [0x00054] in D:\a\1\s\Xamarin.Forms.Core\VisualElement.cs:717
at Xamarin.Forms.StackLayout.CalculateNaiveLayout (Xamarin.Forms.StackLayout+LayoutInformation layout, Xamarin.Forms.StackOrientation orientation, System.Double x, System.Double y, System.Double widthConstraint, System.Double heightConstraint) [0x000a8] in D:\a\1\s\Xamarin.Forms.Core\StackLayout.cs:163
at Xamarin.Forms.StackLayout.CalculateLayout (Xamarin.Forms.StackLayout+LayoutInformation layout, System.Double x, System.Double y, System.Double widthConstraint, System.Double heightConstraint, System.Boolean processExpanders) [0x00058] in D:\a\1\s\Xamarin.Forms.Core\StackLayout.cs:123
at Xamarin.Forms.StackLayout.OnSizeRequest (System.Double widthConstraint, System.Double heightConstraint) [0x00019] in D:\a\1\s\Xamarin.Forms.Core\StackLayout.cs:80
at Xamarin.Forms.VisualElement.OnMeasure (System.Double widthConstraint, System.Double heightConstraint) [0x00000] in D:\a\1\s\Xamarin.Forms.Core\VisualElement.cs:783
at Xamarin.Forms.VisualElement.GetSizeRequest (System.Double widthConstraint, System.Double heightConstraint) [0x00053] in D:\a\1\s\Xamarin.Forms.Core\VisualElement.cs:659
at Xamarin.Forms.Layout.GetSizeRequest (System.Double widthConstraint, System.Double heightConstraint) [0x00000] in D:\a\1\s\Xamarin.Forms.Core\Layout.cs:132
at Xamarin.Forms.VisualElement.Measure (System.Double widthConstraint, System.Double heightConstraint, Xamarin.Forms.MeasureFlags flags) [0x00054] in D:\a\1\s\Xamarin.Forms.Core\VisualElement.cs:717
at Xamarin.Forms.StackLayout.CalculateNaiveLayout (Xamarin.Forms.StackLayout+LayoutInformation layout, Xamarin.Forms.StackOrientation orientation, System.Double x, System.Double y, System.Double widthConstraint, System.Double heightConstraint) [0x000a8] in D:\a\1\s\Xamarin.Forms.Core\StackLayout.cs:163
at Xamarin.Forms.StackLayout.CalculateLayout (Xamarin.Forms.StackLayout+LayoutInformation layout, System.Double x, System.Double y, System.Double widthConstraint, System.Double heightConstraint, System.Boolean processExpanders) [0x00058] in D:\a\1\s\Xamarin.Forms.Core\StackLayout.cs:123
at Xamarin.Forms.StackLayout.LayoutChildren (System.Double x, System.Double y, System.Double width, System.Double height) [0x0004e] in D:\a\1\s\Xamarin.Forms.Core\StackLayout.cs:58
at Xamarin.Forms.Layout.UpdateChildrenLayout () [0x00158] in D:\a\1\s\Xamarin.Forms.Core\Layout.cs:266
at Xamarin.Forms.Layout.OnSizeAllocated (System.Double width, System.Double height) [0x0000f] in D:\a\1\s\Xamarin.Forms.Core\Layout.cs:224
at Xamarin.Forms.VisualElement.SizeAllocated (System.Double width, System.Double height) [0x00000] in D:\a\1\s\Xamarin.Forms.Core\VisualElement.cs:805
at Xamarin.Forms.Layout.ResolveLayoutChanges () [0x0005c] in D:\a\1\s\Xamarin.Forms.Core\Layout.cs:392
at Java.Lang.Thread+RunnableImplementor.Run () [0x00008] in /Users/builder/azdo/_work/204/s/xamarin-android/src/Mono.Android/Java.Lang/Thread.cs:36
at Java.Lang.IRunnableInvoker.n_Run (System.IntPtr jnienv, System.IntPtr native__this) [0x00008] in /Users/builder/azdo/_work/204/s/xamarin-android/src/Mono.Android/obj/Release/monoandroid10/android-29/mcw/Java.Lang.IRunnable.cs:81
at (wrapper dynamic-method) Android.Runtime.DynamicMethodNameCounter.1(intptr,intptr)
Application Output Window show these output:
[mono] Unhandled Exception: [mono] System.ObjectDisposedException: Cannot access a disposed object. [mono] Object name: 'Xamarin.Forms.Platform.Android.FastRenderers.LabelRenderer'. [mono] at (wrapper dynamic-method) Android.Runtime.DynamicMethodNameCounter.1(intptr,intptr) [mono] at (wrapper native-to-managed) Android.Runtime.DynamicMethodNameCounter.1(intptr,intptr) [mono-rt] [ERROR] FATAL UNHANDLED EXCEPTION: System.ObjectDisposedException: Cannot access a disposed object. [mono-rt] Object name: 'Xamarin.Forms.Platform.Android.FastRenderers.LabelRenderer'. [mono-rt] at (wrapper dynamic-method) Android.Runtime.DynamicMethodNameCounter.1(intptr,intptr)
I can reproduce this in our repo, i did tried something like :
if (visualElementRenderer is IDisposedState disposableRenderer && disposableRenderer.IsDisposed)
return new SizeRequest();
But that doesn't work same issue.
I'm getting something similar in 4.7.0.1179 when navigating back from a page containing a CollectionView to another containing a CollectionView:
LayoutPresenter.OnMeasure (System.Double widthConstraint, System.Double heightConstraint)
System.ObjectDisposedException: Cannot access a disposed object. Object name: 'Xamarin.Forms.Platform.Android.FastRenderers.LabelRenderer'.
JniPeerMembers+JniInstanceMethods.InvokeNonvirtualObjectMethod (System.String encodedMember, Java.Interop.IJavaPeerable self, Java.Interop.JniArgumentValue* parameters)
View.get_Context ()
Platform.GetNativeSize (Xamarin.Forms.VisualElement view, System.Double widthConstraint, System.Double heightConstraint)
Forms+AndroidPlatformServices.GetNativeSize (Xamarin.Forms.VisualElement view, System.Double widthConstraint, System.Double heightConstraint)
VisualElement.OnSizeRequest (System.Double widthConstraint, System.Double heightConstraint)
VisualElement.OnMeasure (System.Double widthConstraint, System.Double heightConstraint)
VisualElement.GetSizeRequest (System.Double widthConstraint, System.Double heightConstraint)
VisualElement.Measure (System.Double widthConstraint, System.Double heightConstraint, Xamarin.Forms.MeasureFlags flags)
LayoutPresenter.OnMeasure (System.Double widthConstraint, System.Double heightConstraint)
VisualElement.GetSizeRequest (System.Double widthConstraint, System.Double heightConstraint)
Layout.GetSizeRequest (System.Double widthConstraint, System.Double heightConstraint)
VisualElement.Measure (System.Double widthConstraint, System.Double heightConstraint, Xamarin.Forms.MeasureFlags flags)
TemplatedView.OnSizeRequest (System.Double widthConstraint, System.Double heightConstraint)
VisualElement.OnMeasure (System.Double widthConstraint, System.Double heightConstraint)
VisualElement.GetSizeRequest (System.Double widthConstraint, System.Double heightConstraint)
Layout.GetSizeRequest (System.Double widthConstraint, System.Double heightConstraint)
VisualElement.Measure (System.Double widthConstraint, System.Double heightConstraint, Xamarin.Forms.MeasureFlags flags)
Grid.MeasuredStarredColumns (System.Double widthConstraint, System.Double heightConstraint)
Grid.MeasureAndContractStarredColumns (System.Double width, System.Double height, System.Double totalStarsWidth)
Grid.MeasureGrid (System.Double width, System.Double height, System.Boolean requestSize)
Grid.OnSizeRequest (System.Double widthConstraint, System.Double heightConstraint)
VisualElement.OnMeasure (System.Double widthConstraint, System.Double heightConstraint)
VisualElement.GetSizeRequest (System.Double widthConstraint, System.Double heightConstraint)
Layout.GetSizeRequest (System.Double widthConstraint, System.Double heightConstraint)
VisualElement.Measure (System.Double widthConstraint, System.Double heightConstraint, Xamarin.Forms.MeasureFlags flags)
StackLayout.CalculateNaiveLayout (Xamarin.Forms.StackLayout+LayoutInformation layout, Xamarin.Forms.StackOrientation orientation, System.Double x, System.Double y, System.Double widthConstraint, System.Double heightConstraint)
StackLayout.CalculateLayout (Xamarin.Forms.StackLayout+LayoutInformation layout, System.Double x, System.Double y, System.Double widthConstraint, System.Double heightConstraint, System.Boolean processExpanders)
StackLayout.LayoutChildren (System.Double x, System.Double y, System.Double width, System.Double height)
Layout.UpdateChildrenLayout ()
Layout.OnSizeAllocated (System.Double width, System.Double height)
VisualElement.SizeAllocated (System.Double width, System.Double height)
Layout.ResolveLayoutChanges ()
Thread+RunnableImplementor.Run ()
IRunnableInvoker.n_Run (System.IntPtr jnienv, System.IntPtr native__this)
(wrapper dynamic-method) Android.Runtime.DynamicMethodNameCounter.59(intptr,intptr)```
Just some findings around this @samhouts : We were also seeing this behaviour with CollectionView. After spending some time on it, it looks like it could be due to the following events.
Note: This is a theory.
I worked around this by overriding ItemsViewAdapter.OnViewRecycled and returning for a TemplatedItemViewHolder. Then I added code to remove the TemplatedItemViewHolder.View from the ItemsView in OnBindViewHolder, before calling base.
So far none who have tried have been able to reproduce the issue any longer
@joshuangfraedom are you able to share your sample code for the adapter change and I'll see if that fixes it for me please?
Something like this @DuncWatts
...
namespace and renderer export
...
class MyCollectionViewRenderer : CollectionViewRenderer
{
protected override GroupableItemsViewAdapter<GroupableItemsView, IGroupableItemsViewSource> CreateAdapter()
{
return new MyCollectionViewAdapter(ItemsView);
}
private class MyCollectionViewAdapter : ExtendedCollectionViewAdapter
{
... base constructor call
/// <inheritdoc />
public override void OnViewRecycled(JObject holder)
{
if (holder is TemplatedItemViewHolder)
{
return;
}
base.OnViewRecycled(holder);
}
/// <inheritdoc />
public override void OnBindViewHolder(ViewHolder holder, int position)
{
if (holder is TemplatedItemViewHolder templatedItemViewHolder)
{
ItemsView.RemoveLogicalChild(templatedItemViewHolder.View);
}
base.OnBindViewHolder(holder, position);
}
}
}
Reading SelectableItemsViewAdapter
it looks like the above will introduce a memory leak. We really need this resolved at a Forms level for a proper solution (everything is internalized in that class).
This is a little more robust and I think handles all the selectable stuff as per previous @DuncWatts @samhouts. I still don't know what exactly is disposing of the Cell's renderers.
But keeping the reference in the ItemsView seems to prevent it being cleaned out well enough.
public class MyCollectionViewRenderer : ExtendedCollectionViewRenderer
{
private static readonly FieldInfo CurrentViewHoldersField;
private static readonly Action<SelectableItemsViewAdapter<GroupableItemsView, IGroupableItemsViewSource>, object, int> ViewHolderClicked;
private static readonly Func<SelectableItemsViewAdapter<GroupableItemsView, IGroupableItemsViewSource>, int, bool> PositionIsSelected;
static MyCollectionViewRenderer()
{
CurrentViewHoldersField = // SelectableItemsViewAdapter._currentViewHolders via reflection
ViewHolderClicked = // Gets SelectableItemsViewAdapter.SelectableClicked via reflection as a delegate
PositionIsSelected = // Gets SelectableItemsViewAdapter.PositionIsSelected via reflection as a delegate
}
public MyCollectionViewRenderer(Context context) : base(context)
{
}
protected override GroupableItemsViewAdapter<GroupableItemsView, IGroupableItemsViewSource> CreateAdapter()
{
return new MyCollectionViewAdapter(
groupableItemsView: ItemsView,
tapColour: GetTapColour(),
allowItemSelection: Element.SelectionMode != SelectionMode.None,
viewAppearing: Element.ViewAppearing);
}
private class MyCollectionViewAdapter : GroupableItemsViewAdapter<GroupableItemsView, IGroupableItemsViewSource>
{
protected internal MyCollectionViewAdapter(GroupableItemsView groupableItemsView, Func<View, Context, ItemContentView> createView = null)
: base(groupableItemsView, createView)
{
}
public override void OnViewRecycled(Java.Lang.Object holder)
{
// Prevent cleanup of the TemplatedItemViewHolder.
// This cleanup looks to be the cause of the problem,
// as it drops references to it's Xamarin Forms view.
if (holder is TemplatedItemViewHolder templatedItemViewHolder)
{
// Allows selection to be cleared in SelectableItemsViewAdapter.
var currentViewHolders = (List<SelectableViewHolder>)CurrentViewHoldersField.GetValue(this);
currentViewHolders.Remove(templatedItemViewHolder);
return;
}
base.OnViewRecycled(holder);
}
public override void OnBindViewHolder(ViewHolder holder, int position)
{
// If TemplatedItemViewHolder, do the stuff we want to do, plus the stuff forms was doing.
// Except for SelectableItemAdapter. We don't want their events.
// Thank you Xamarin team for using "Bind" on TemplatedItemViewHolder.
if (holder is TemplatedItemViewHolder templatedItemViewHolder)
{
// Remove the child from ItemsView, as TemplatedItemViewHolder.Bind(ItemsView) will
// Re-add it later on.
ItemsView.RemoveLogicalChild(templatedItemViewHolder.View);
if (ItemsSource.IsHeader(position))
{
templatedItemViewHolder.Bind(ItemsView.Header, ItemsView);
}
else if (ItemsSource.IsFooter(position))
{
templatedItemViewHolder.Bind(ItemsView.Footer, ItemsView);
}
else
{
// Also accounts for group header/group footer
templatedItemViewHolder.Bind(ItemsSource.GetItem(position), ItemsView);
}
// Allows selection to be cleared in SelectableItemsViewAdapter.
var currentViewHolders = (List<SelectableViewHolder>)CurrentViewHoldersField.GetValue(this);
currentViewHolders.Add(templatedItemViewHolder);
// Make sure that if this item is one of the selected items, it's marked as selected
templatedItemViewHolder.IsSelected = PositionIsSelected(this, position);
return;
}
base.OnBindViewHolder(holder, position);
}
public override void OnViewAttachedToWindow(JObject holder)
{
base.OnViewAttachedToWindow(holder);
if (holder is TemplatedItemViewHolder templatedItemViewHolder)
{
// Watch for clicks so the user can select the item held by this ViewHolder
// This replaces the click events triggered in SelectableItemViewHolder
// but still invokes SelectableItemsViewAdapter.SelectableClicked.
// I find these safer to use than click events when tied to Java objects.
templatedItemViewHolder.ItemView.SetOnClickListener(
ClickListener.With(
v => ViewHolderClicked(this, v, templatedItemViewHolder.AdapterPosition)));
}
}
public override void OnViewDetachedFromWindow(JObject holder)
{
base.OnViewDetachedFromWindow(holder);
if (holder is TemplatedItemViewHolder templatedItemViewHolder)
{
templatedItemViewHolder.ItemView.SetOnClickListener(null);
}
}
}
}
A better solution to this might even be to clear out the View on TemplatedItemViewHolder.Recycle and then execute everything in the templateChanging branch again. That seems like a safer approach, but would require re-implementing a bunch of stuff if the change isn't made in the XF codebase. I don't think trusting that the View and it's renderers will be preserved between Recycle and Bind is going to be reliable.
I cannot repro this, but the cause in our app was a binding firing up to the UI that was in the process of disposing (removed from the visual tree). Luckily for us, the binding mode only needed to be set to OneTime to fix the issue.
I am having the same crash issue with Xamarin.Forms 4.6.0.847. I get this crash stack trace when I mess around a few times with Syncfusion's SfComboBox (v18.2.0.44). I think label in that crashes.
@Edgaras91 my experience was also using the syncfusion SfComboBox. An element on the ItemTemplate was binding IsVisible to a property on the viewmodel (IsSelected). When a new selection was made - which closes the combobox dropdown, the resetting of the IsSelected properties of the bound ItemSource models was causing the crash. Changing the binding mode to OneTime solved the issue.
@Edgaras91 my experience was also using the syncfusion SfComboBox. An element on the ItemTemplate was binding IsVisible to a property on the viewmodel (IsSelected). When a new selection was made - which closes the combobox dropdown, the resetting of the IsSelected properties of the bound ItemSource models was causing the crash. Changing the binding mode to OneTime solved the issue.
Thank you @InquisitorJax for that, however, changing my DataSource binding model to OneTime, did not solve my crash issue.
Some more information on how to reproduce this crash that might help others:
In a view with SfComboBox and data in it's DataSource everything is stable. Then when I open a "popup" using Rg.Plugins.Popup re-using same ViewModel as BindingContext and leave it open for 3 seconds and closing this popup, then changing the value on original SfComboBox 2 times by selecting from drop down, will throw the LabelRenderer exception.
The reason I'm not posting to Syncfusion yet is that the exception is pure Xamarin Forms. I am yet to try the suggested Xamarin version rollback workaround.
I can confirm, that for me XF 4.4.0.991864 did NOT fix it, still getting the same exception.
Xamarin Forms 4.8.0.1364
JniPeerMembers.AssertSelf (Java.Interop.IJavaPeerable self) JniPeerMembers+JniInstanceMethods.InvokeNonvirtualObjectMethod (System.String encodedMember, Java.Interop.IJavaPeerable self, Java.Interop.JniArgumentValue* parameters) View.get_Context () Platform.GetNativeSize (Xamarin.Forms.VisualElement view, System.Double widthConstraint, System.Double heightConstraint) Forms+AndroidPlatformServices.GetNativeSize (Xamarin.Forms.VisualElement view, System.Double widthConstraint, System.Double heightConstraint) VisualElement.OnSizeRequest (System.Double widthConstraint, System.Double heightConstraint) VisualElement.OnMeasure (System.Double widthConstraint, System.Double heightConstraint) VisualElement.GetSizeRequest (System.Double widthConstraint, System.Double heightConstraint) VisualElement.Measure (System.Double widthConstraint, System.Double heightConstraint, Xamarin.Forms.MeasureFlags flags) StackLayout.CalculateNaiveLayout (Xamarin.Forms.StackLayout+LayoutInformation layout, Xamarin.Forms.StackOrientation orientation, System.Double x, System.Double y, System.Double widthConstraint, System.Double heightConstraint) StackLayout.CalculateLayout (Xamarin.Forms.StackLayout+LayoutInformation layout, System.Double x, System.Double y, System.Double widthConstraint, System.Double heightConstraint, System.Boolean processExpanders) StackLayout.OnSizeRequest (System.Double widthConstraint, System.Double heightConstraint) VisualElement.OnMeasure (System.Double widthConstraint, System.Double heightConstraint) VisualElement.GetSizeRequest (System.Double widthConstraint, System.Double heightConstraint) Layout.GetSizeRequest (System.Double widthConstraint, System.Double heightConstraint) VisualElement.Measure (System.Double widthConstraint, System.Double heightConstraint, Xamarin.Forms.MeasureFlags flags) StackLayout.CalculateNaiveLayout (Xamarin.Forms.StackLayout+LayoutInformation layout, Xamarin.Forms.StackOrientation orientation, System.Double x, System.Double y, System.Double widthConstraint, System.Double heightConstraint) StackLayout.CalculateLayout (Xamarin.Forms.StackLayout+LayoutInformation layout, System.Double x, System.Double y, System.Double widthConstraint, System.Double heightConstraint, System.Boolean processExpanders) StackLayout.OnSizeRequest (System.Double widthConstraint, System.Double heightConstraint) VisualElement.OnMeasure (System.Double widthConstraint, System.Double heightConstraint) VisualElement.GetSizeRequest (System.Double widthConstraint, System.Double heightConstraint) Layout.GetSizeRequest (System.Double widthConstraint, System.Double heightConstraint) VisualElement.Measure (System.Double widthConstraint, System.Double heightConstraint, Xamarin.Forms.MeasureFlags flags) StackLayout.CalculateNaiveLayout (Xamarin.Forms.StackLayout+LayoutInformation layout, Xamarin.Forms.StackOrientation orientation, System.Double x, System.Double y, System.Double widthConstraint, System.Double heightConstraint) StackLayout.CalculateLayout (Xamarin.Forms.StackLayout+LayoutInformation layout, System.Double x, System.Double y, System.Double widthConstraint, System.Double heightConstraint, System.Boolean processExpanders) StackLayout.OnSizeRequest (System.Double widthConstraint, System.Double heightConstraint) VisualElement.OnMeasure (System.Double widthConstraint, System.Double heightConstraint) VisualElement.GetSizeRequest (System.Double widthConstraint, System.Double heightConstraint) Layout.GetSizeRequest (System.Double widthConstraint, System.Double heightConstraint) VisualElement.Measure (System.Double widthConstraint, System.Double heightConstraint, Xamarin.Forms.MeasureFlags flags) TemplatedView.OnSizeRequest (System.Double widthConstraint, System.Double heightConstraint) VisualElement.OnMeasure (System.Double widthConstraint, System.Double heightConstraint) VisualElement.GetSizeRequest (System.Double widthConstraint, System.Double heightConstraint) Layout.GetSizeRequest (System.Double widthConstraint, System.Double heightConstraint) VisualElement.Measure (System.Double widthConstraint, System.Double heightConstraint, Xamarin.Forms.MeasureFlags flags) Grid.CalculateAutoCells (System.Double width, System.Double height) Grid.MeasureGrid (System.Double width, System.Double height, System.Boolean requestSize) Grid.LayoutChildren (System.Double x, System.Double y, System.Double width, System.Double height) Layout.UpdateChildrenLayout () Layout.OnSizeAllocated (System.Double width, System.Double height) VisualElement.SizeAllocated (System.Double width, System.Double height) Layout.ResolveLayoutChanges () Thread+RunnableImplementor.Run () IRunnableInvoker.n_Run (System.IntPtr jnienv, System.IntPtr native__this)
This issue is reproducible in collection views with item templates. This has become critical bug for us.
We are having a collection view template selector and templates consist of expandable component and app crashes with below exception upon clicked on expandable icon.
Note: expand ability is achieved simply by setting visible false and setting parent grid's row size to Auto.
Not only LabelRenderer it fires ImageRenderer exception as well, when there are no labels in expandable view.
`09-10 20:20:28.104 E/AppCenterCrashes(23119): Unhandled Exception from source=AndroidEnvironment
09-10 20:20:28.104 E/AppCenterCrashes(23119): System.ObjectDisposedException: Cannot access a disposed object.
09-10 20:20:28.104 E/AppCenterCrashes(23119): Object name: 'Xamarin.Forms.Platform.Android.FastRenderers.ImageRenderer'.
09-10 20:20:28.104 E/AppCenterCrashes(23119): at Java.Interop.JniPeerMembers.AssertSelf (Java.Interop.IJavaPeerable self) [0x00029] in
System.ObjectDisposedException: 'Cannot access a disposed object. Object name: 'Xamarin.Forms.Platform.Android.FastRenderers.ImageRenderer'.'`
It is outright ridiculous that how Microsoft can expect to use this platform to create any Enterprise app with such a basic defect still opened up after so many complaints over such a period of long time!
We haven't been able to release update to our Android version of the app for past 4 months and all we get from this thread is that they can't reproduce this, when the rest of the world easily can!!!
Microsoft should stop doing anything and everything before this bug can be fixed. Releasing any newer version of Xamarin is pretty much pointless!!!
My workaround to this exception (testing XF versions from 4.5.X to 4.8.X before to be sure version change doesn't work): POV: CarouselView (as a modal) is keeping labels with numbers (selecting product quantity in cart). This control is showing only if user want to change quantity. This exception was firing when carouselview was hidding, but still was "connected" to binding List<> and SelectedItem. Solution: Filling this control in xaml.cs directly after Clicked event was fired. In this way this control is not connected with ViewModel/PageModel class. This solution is simulation of binding:
// _counts is CarouselView
private void QuantityChangeTapped(object sender, System.EventArgs e) //event of button
{
CartItem item = (sender as View).BindingContext as CartItem; //product in cart that quantity is going to change
_viewModel.Item = item; //set already saved quantity
_counts.ItemsSource = Enumerable.Range(1, item.QuantityRemaining).ToList();
_counts.Position = item.Quantity - 1; //scroll carousel to saved already quantity
ShowSlider(); //show carousel
}
private void CountApprouveClicked(object sender, System.EventArgs e) //event of button called "save selected quantity"
{
CloseSlider();
_viewModel.SelectedCount = (int)_counts.CurrentItem;
_viewModel.OnCountApprouve.Execute(null);
}
Encountered this one again - only there wasn't any Syncfusion controls involved. Simply an item on a DataTemplate that had a IsVisible binding to the ViewModel. Solution was the same though: set the BindingMode to OneTime.
Can anyone who is seeing this issue test with the nuget here?
And then please let me know if you still see the exception?
Can anyone who is seeing this issue test with the nuget here?
And then please let me know if you still see the exception?
I just tried the nugget you posted and an exception keeps happening, the only difference from the previous exception is that instead of referring to Xamarin.Forms.Platform.Android.FastRenderers.LabelRenderer now the exception refers to Xamarin.Forms.Platform.Android.Platform+DefaultRenderer
New exception:
System.ObjectDisposedException: 'Cannot access a disposed object.
Object name: 'Xamarin.Forms.Platform.Android.Platform+DefaultRenderer'.'
Old exception:
System.ObjectDisposedException: 'Cannot access a disposed object.
Object name: 'Xamarin.Forms.Platform.Android.FastRenderers.LabelRenderer'.'
@nacompllo can you post the whole stacktrace? I realize it's probably only the one line that's different but it'd still be useful to have the full trace here
@PureWeen I tested the nuget and it still crashes but the stack is a little bit different
09-12 22:30:00.522 I/MonoDroid( 5147): UNHANDLED EXCEPTION:
09-12 22:30:00.524 I/MonoDroid( 5147): System.ObjectDisposedException: Cannot access a disposed object.
09-12 22:30:00.524 I/MonoDroid( 5147): Object name: 'Xamarin.Forms.Platform.Android.FastRenderers.LabelRenderer'.
09-12 22:30:00.524 I/MonoDroid( 5147): at Java.Interop.JniPeerMembers.AssertSelf (Java.Interop.IJavaPeerable self) [0x00029] in <42748fcc36b74733af2d9940a8f3cc8e>:0
09-12 22:30:00.524 I/MonoDroid( 5147): at Java.Interop.JniPeerMembers+JniInstanceMethods.InvokeNonvirtualObjectMethod (System.String encodedMember, Java.Interop.IJavaPeerable self, Java.Interop.JniArgumentValue* parameters) [0x00000] in <42748fcc36b74733af2d9940a8f3cc8e>:0
09-12 22:30:00.524 I/MonoDroid( 5147): at Android.Views.View.get_Context () [0x0000a] in <7d2292394f8c488b97f5bc2a0ac0240d>:0
09-12 22:30:00.524 I/MonoDroid( 5147): at Xamarin.Forms.Platform.Android.Platform.GetNativeSize (Xamarin.Forms.VisualElement view, System.Double widthConstraint, System.Double heightConstraint) [0x0001b] in D:\agent\1\s\Xamarin.Forms.Platform.Android\Platform.cs:1345
09-12 22:30:00.524 I/MonoDroid( 5147): at Xamarin.Forms.Forms+AndroidPlatformServices.GetNativeSize (Xamarin.Forms.VisualElement view, System.Double widthConstraint, System.Double heightConstraint) [0x00001] in D:\agent\1\s\Xamarin.Forms.Platform.Android\Forms.cs:921
09-12 22:30:00.524 I/MonoDroid( 5147): at Xamarin.Forms.VisualElement.OnSizeRequest (System.Double widthConstraint, System.Double heightConstraint) [0x0002d] in D:\agent\1\s\Xamarin.Forms.Core\VisualElement.cs:814
09-12 22:30:00.524 I/MonoDroid( 5147): at Xamarin.Forms.VisualElement.OnMeasure (System.Double widthConstraint, System.Double heightConstraint) [0x00001] in D:\agent\1\s\Xamarin.Forms.Core\VisualElement.cs:799
09-12 22:30:00.524 I/MonoDroid( 5147): at Xamarin.Forms.VisualElement.GetSizeRequest (System.Double widthConstraint, System.Double heightConstraint) [0x00070] in D:\agent\1\s\Xamarin.Forms.Core\VisualElement.cs:689
09-12 22:30:00.524 I/MonoDroid( 5147): at Xamarin.Forms.VisualElement.Measure (System.Double widthConstraint, System.Double heightConstraint, Xamarin.Forms.MeasureFlags flags) [0x00064] in D:\agent\1\s\Xamarin.Forms.Core\VisualElement.cs:741
09-12 22:30:00.524 I/MonoDroid( 5147): at Xamarin.Forms.Layout.LayoutChildIntoBoundingRegion (Xamarin.Forms.VisualElement child, Xamarin.Forms.Rectangle region) [0x0009d] in D:\agent\1\s\Xamarin.Forms.Core\Layout.cs:133
09-12 22:30:00.524 I/MonoDroid( 5147): at Xamarin.Forms.Grid.LayoutChildren (System.Double x, System.Double y, System.Double width, System.Double height) [0x00177] in D:\agent\1\s\Xamarin.Forms.Core\GridCalc.cs:49
09-12 22:30:00.524 I/MonoDroid( 5147): at Xamarin.Forms.Layout.UpdateChildrenLayout () [0x00173] in D:\agent\1\s\Xamarin.Forms.Core\Layout.cs:239
09-12 22:30:00.524 I/MonoDroid( 5147): at Xamarin.Forms.Layout.OnSizeAllocated (System.Double width, System.Double height) [0x00011] in D:\agent\1\s\Xamarin.Forms.Core\Layout.cs:203
09-12 22:30:00.524 I/MonoDroid( 5147): at Xamarin.Forms.VisualElement.SizeAllocated (System.Double width, System.Double height) [0x00000] in D:\agent\1\s\Xamarin.Forms.Core\VisualElement.cs:817
09-12 22:30:00.524 I/MonoDroid( 5147): at Xamarin.Forms.Layout.ResolveLayoutChanges () [0x0008b] in D:\agent\1\s\Xamarin.Forms.Core\Layout.cs:374
09-12 22:30:00.524 I/MonoDroid( 5147): at Xamarin.Forms.Platform.Android.Platform+DefaultRenderer.OnMeasure (System.Int32 widthMeasureSpec, System.Int32 heightMeasureSpec) [0x00016] in D:\agent\1\s\Xamarin.Forms.Platform.Android\Platform.cs:1309
09-12 22:30:00.524 I/MonoDroid( 5147): at Android.Views.View.n_OnMeasure_II (System.IntPtr jnienv, System.IntPtr native__this, System.Int32 widthMeasureSpec, System.Int32 heightMeasureSpec) [0x00008] in <7d2292394f8c488b97f5bc2a0ac0240d>:0
09-12 22:30:00.524 I/MonoDroid( 5147): at (wrapper dynamic-method) Android.Runtime.DynamicMethodNameCounter.28(intptr,intptr,int,int)
09-12 22:30:00.532 E/AppCenterCrashes( 5147): Unhandled Exception from source=AndroidEnvironment
09-12 22:30:00.532 E/AppCenterCrashes( 5147): System.ObjectDisposedException: Cannot access a disposed object.
09-12 22:30:00.532 E/AppCenterCrashes( 5147): Object name: 'Xamarin.Forms.Platform.Android.FastRenderers.LabelRenderer'.
09-12 22:30:00.532 E/AppCenterCrashes( 5147): at Java.Interop.JniPeerMembers.AssertSelf (Java.Interop.IJavaPeerable self) [0x00029] in <42748fcc36b74733af2d9940a8f3cc8e>:0
09-12 22:30:00.532 E/AppCenterCrashes( 5147): at Java.Interop.JniPeerMembers+JniInstanceMethods.InvokeNonvirtualObjectMethod (System.String encodedMember, Java.Interop.IJavaPeerable self, Java.Interop.JniArgumentValue* parameters) [0x00000] in <42748fcc36b74733af2d9940a8f3cc8e>:0
09-12 22:30:00.532 E/AppCenterCrashes( 5147): at Android.Views.View.get_Context () [0x0000a] in <7d2292394f8c488b97f5bc2a0ac0240d>:0
09-12 22:30:00.532 E/AppCenterCrashes( 5147): at Xamarin.Forms.Platform.Android.Platform.GetNativeSize (Xamarin.Forms.VisualElement view, System.Double widthConstraint, System.Double heightConstraint) [0x0001b] in D:\agent\1\s\Xamarin.Forms.Platform.Android\Platform.cs:1345
09-12 22:30:00.532 E/AppCenterCrashes( 5147): at Xamarin.Forms.Forms+AndroidPlatformServices.GetNativeSize (Xamarin.Forms.VisualElement view, System.Double widthConstraint, System.Double heightConstraint) [0x00001] in D:\agent\1\s\Xamarin.Forms.Platform.Android\Forms.cs:921
09-12 22:30:00.532 E/AppCenterCrashes( 5147): at Xamarin.Forms.VisualElement.OnSizeRequest (System.Double widthConstraint, System.Double heightConstraint) [0x0002d] in D:\agent\1\s\Xamarin.Forms.Core\VisualElement.cs:814
09-12 22:30:00.532 E/AppCenterCrashes( 5147): at Xamarin.Forms.VisualElement.OnMeasure (System.Double widthConstraint, System.Double heightConstraint) [0x00001] in D:\agent\1\s\Xamarin.Forms.Core\VisualElement.cs:799
09-12 22:30:00.532 E/AppCenterCrashes( 5147): at Xamarin.Forms.VisualElement.GetSizeRequest (System.Double widthConstraint, System.Double heightConstraint) [0x00070] in D:\agent\1\s\Xamarin.Forms.Core\VisualElement.cs:689
09-12 22:30:00.532 E/AppCenterCrashes( 5147): at Xamarin.Forms.VisualElement.Measure (System.Double widthConstraint, System.Double heightConstraint, Xamarin.Forms.MeasureFlags flags) [0x00064] in D:\agent\1\s\Xamarin.Forms.Core\VisualElement.cs:741
09-12 22:30:00.532 E/AppCenterCrashes( 5147): at Xamarin.Forms.Layout.LayoutChildIntoBoundingRegion (Xamarin.Forms.VisualElement child, Xamarin.Forms.Rectangle region) [0x0009d] in D:\agent\1\s\Xamarin.Forms.Core\Layout.cs:133
09-12 22:30:00.532 E/AppCenterCrashes( 5147): at Xamarin.Forms.Grid.LayoutChildren (System.Double x, System.Double y, System.Double width, System.Double height) [0x00177] in D:\agent\1\s\Xamarin.Forms.Core\GridCalc.cs:49
09-12 22:30:00.532 E/AppCenterCrashes( 5147): at Xamarin.Forms.Layout.UpdateChildrenLayout () [0x00173] in D:\agent\1\s\Xamarin.Forms.Core\Layout.cs:239
09-12 22:30:00.532 E/AppCenterCrashes( 5147): at Xamarin.Forms.Layout.OnSizeAllocated (System.Double width, System.Double height) [0x00011] in D:\agent\1\s\Xamarin.Forms.Core\Layout.cs:203
09-12 22:30:00.532 E/AppCenterCrashes( 5147): at Xamarin.Forms.VisualElement.SizeAllocated (System.Double width, System.Double height) [0x00000] in D:\agent\1\s\Xamarin.Forms.Core\VisualElement.cs:817
09-12 22:30:00.532 E/AppCenterCrashes( 5147): at Xamarin.Forms.Layout.ResolveLayoutChanges () [0x0008b] in D:\agent\1\s\Xamarin.Forms.Core\Layout.cs:374
09-12 22:30:00.532 E/AppCenterCrashes( 5147): at Xamarin.Forms.Platform.Android.Platform+DefaultRenderer.OnMeasure (System.Int32 widthMeasureSpec, System.Int32 heightMeasureSpec) [0x00016] in D:\agent\1\s\Xamarin.Forms.Platform.Android\Platform.cs:1309
09-12 22:30:00.532 E/AppCenterCrashes( 5147): at Android.Views.View.n_OnMeasure_II (System.IntPtr jnienv, System.IntPtr native__this, System.Int32 widthMeasureSpec, System.Int32 heightMeasureSpec) [0x00008] in <7d2292394f8c488b97f5bc2a0ac0240d>:0
09-12 22:30:00.532 E/AppCenterCrashes( 5147): at (wrapper dynamic-method) Android.Runtime.DynamicMethodNameCounter.28(intptr,intptr,int,int)
09-12 22:30:00.539 D/Mono ( 5147): Requesting loading reference 5 (of 6) of /storage/emulated/0/Android/data/com.Tandem.DoKapsyApp/files/.__override__/Microsoft.AppCenter.Crashes.dll
09-12 22:30:00.539 D/Mono ( 5147): Loading reference 5 of /storage/emulated/0/Android/data/com.Tandem.DoKapsyApp/files/.__override__/Microsoft.AppCenter.Crashes.dll asmctx DEFAULT, looking for System.Core, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e
09-12 22:30:00.539 D/Mono ( 5147): Assembly Ref addref Microsoft.AppCenter.Crashes[0xec37f580] -> System.Core[0xec37e8c0]: 11
09-12 22:30:00.634 D/Mono ( 5147): DllImport searching in: '__Internal' ('(null)').
09-12 22:30:00.634 D/Mono ( 5147): Searching for 'java_interop_jnienv_throw'.
09-12 22:30:00.634 D/Mono ( 5147): Probing 'java_interop_jnienv_throw'.
09-12 22:30:00.634 D/Mono ( 5147): Found as 'java_interop_jnienv_throw'.
**System.ObjectDisposedException:** 'Cannot access a disposed object.
Object name: 'Xamarin.Forms.Platform.Android.FastRenderers.LabelRenderer'.'
=================================================================
Native Crash Reporting
=================================================================
Got a SEGV while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries
used by your application.
=================================================================
No native Android stacktrace (see debuggerd output).
=================================================================
Basic Fault Address Reporting
=================================================================
Memory around native instruction pointer (0xe79167fa):0xe79167ea 00 00 00 c7 47 18 00 00 00 00 74 7a 8b 3a 31 d2 ....G.....tz.:1.
0xe79167fa 8b 4f 04 f7 c1 00 01 00 00 0f 84 28 f9 ff ff a8 .O.........(....
0xe791680a 01 0f 85 c1 00 00 00 8b 57 18 85 d2 0f 84 de fd ........W.......
0xe791681a ff ff 8b b3 04 3b 00 00 3b 93 ac fb ff ff 8b 86 .....;..;.......
=============================================================09-12 22:30:01.742 I/MonoDroid( 5147): UNHANDLED EXCEPTION:
====
Managed Stacktrace:
=================================================================
at <unknown> <0xffffffff>
at Java.Interop.NativeMethods:java_interop_jnienv_new_string <0x00012>
at Strings:NewString <0x00077>
at Strings:NewString <0x00147>
at Android.Runtime.JNIEnv:NewString <0x0008f>
at Java.Lang.Error:.ctor <0x000ff>
at Android.Runtime.JavaProxyThrowable:.ctor <0x00067>
at Java.Lang.Throwable:FromException <0x0012f>
at Android.Runtime.AndroidEnvironment:UnhandledException <0x0039b>
at Android.Runtime.DynamicMethodNameCounter:28 <0x00163>
at Android.Runtime.DynamicMethodNameCounter:28 <0x000bf>
at <unknown> <0xffffffff>
at Java.Interop.NativeMethods:java_interop_jnienv_call_nonvirtual_void_method_a <0x00015>
at InstanceMethods:CallNonvirtualVoidMethod <0x00353>
at JniInstanceMethods:InvokeNonvirtualVoidMethod <0x00127>
at Android.Views.View:Measure <0x00197>
at Xamarin.Forms.Platform.Android.AppCompat.NavigationPageRenderer:OnLayout <0x0037f>
a09-12 22:30:01.743 I/MonoDroid( 5147): System.ObjectDisposedException: Cannot access a disposed object.
t Xamarin.Forms.Platform.Android.FormsViewGroup:n_OnLayout_ZIIII <0x000ca>
at Android.Runtime.DynamicMethodNameCounter:40 <0x00147>
at Android.Runtime.DynamicMethodNameCounter:40 <0x000f3>
at <unknown> <0xffffffff>
at Java.Interop.NativeMethods:java_interop_jnienv_call_nonvirtual_void_method_a <0x00015>
at InstanceMethods:CallNonvirtualVoidMethod <0x00353>
at JniInstanceMethods:InvokeVirtualVoidMethod <0x002df>
at Xamarin.Forms.Platform.Android.FormsViewGroup:MeasureAndLayout <0x00397>
at Xamarin.Forms.Platform.Android.VisualElementTracker:UpdateLayout <0x00797>
at Xamarin.Forms.Platform.Android.VisualElementRenderer`1:UpdateLayout <0x000c3>
at Xamarin.Forms.Platform.Android.MasterDetailContainer:OnLayout <0x003c6>
at Xamarin.Forms.Platform.Android.AppCompat.MasterDetailContainer:OnLayout <0x000db>
at Android.Views.ViewGroup:n_OnLayout_ZIIII <0x000aa>
at Android.Runtime.DynamicMethodNameCounter:27 <0x00147>
at Android.Runtime.DynamicMethodNameCounter:27 <0x000f3>
a09-12 22:30:01.743 I/MonoDroid( 5147): Object name: 'Xamarin.Forms.Platform.Android.FastRenderers.LabelRenderer'.
t <unknown> <0xffffffff>
at Java.Interop.NativeMethods:java_interop_jnienv_call_nonvirtual_void_method_a <0x00015>
at InstanceMethods:CallNonvirtualVoidMethod <0x00353>
at JniInstanceMethods:InvokeVirtualVoidMethod <0x002df>
at AndroidX.DrawerLayout.Widget.DrawerLayout:OnLayout <0x002eb>
at Xamarin.Forms.Platform.Android.AppCompat.MasterDetailPageRenderer:OnLayout <0x00087>
at AndroidX.DrawerLayout.Widget.DrawerLayout:n_OnLayout_ZIIII <0x000aa>
at Android.Runtime.DynamicMethodNameCounter:31 <0x00147>
at Android.Runtime.DynamicMethodNameCounter:31 <0x000f3>
at <unknown> <0xffffffff>
at Java.Interop.NativeMethods:java_interop_jnienv_call_nonvirtual_void_method_a <0x00015>
at InstanceMethods:CallNonvirtualVoidMethod <0x00353>
at JniInstanceMethods:InvokeNonvirtualVoidMethod <0x00127>
at Android.Views.ViewGroup:Layout <0x00277>
at Xamarin.Forms.Platform.Android.VisualElementTracker:UpdateLayout <0x0061a>
at Xamarin.Forms.Platform.Android.AppCompat.MasterDetailPageRende09-12 22:30:01.743 I/MonoDroid( 5147): at (wrapper dynamic-method) Android.Runtime.DynamicMethodNameCounter.28(intptr,intptr,int,int)
rer:Xamarin.Forms.Platform.Android.IVisualElementRenderer.UpdateLayout <0x00067>
at Xamarin.Forms.Platform.Android.AppCompat.Platform:Xamarin.Forms.Platform.Android.IPlatformLayout.OnLayout <0x00184>
at Xamarin.Forms.Platform.Android.PlatformRenderer:OnLayout <0x00119>
at Android.Views.ViewGroup:n_OnLayout_ZIIII <0x000aa>
at Android.Runtime.DynamicMethodNameCounter:27 <0x00147>
at Android.Runtime.DynamicMethodNameCounter:27 <0x000f3>
=================================================================09-12 22:30:01.743 I/MonoDroid( 5147): at (wrapper native-to-managed) Android.Runtime.DynamicMethodNameCounter.28(intptr,intptr,int,int)
09-12 22:30:01.743 I/MonoDroid( 5147): at (wrapper managed-to-native) Java.Interop.NativeMethods.java_interop_jnienv_call_nonvirtual_void_method_a(intptr,intptr&,intptr,intptr,intptr,intptr)
09-12 22:30:01.743 I/MonoDroid( 5147): at Java.Interop.JniEnvironment+InstanceMethods.CallNonvirtualVoidMethod (Java.Interop.JniObjectReference instance, Java.Interop.JniObjectReference type, Java.Interop.JniMethodInfo method, Java.Interop.JniArgumentValue* args) [0x00079] in <42748fcc36b74733af2d9940a8f3cc8e>:0
09-12 22:30:01.743 I/MonoDroid( 5147): at Java.Interop.JniPeerMembers+JniInstanceMethods.InvokeNonvirtualVoidMethod (System.String encodedMember, Java.Interop.IJavaPeerable self, Java.Interop.JniArgumentValue* parameters) [0x0001f] in <42748fcc36b74733af2d9940a8f3cc8e>:0
09-12 22:30:01.743 I/MonoDroid( 5147): at Android.Views.View.Measure (System.Int32 widthMeasureSpec, System.Int32 heightMeasureSpec) [0x00035] in <7d2292394f8c488b97f5bc2a0ac0240d>:0
09-12 22:30:01.743 I/MonoDroid( 5147): at Xamarin.Forms.Platform.Android.AppCompat.NavigationPageRenderer+Container.OnMeasure (System.Int32 widthMeasureSpec, System.Int32 heightMeasureSpec) [0x000d0] in D:\agent\1\s\Xamarin.Forms.Platform.Android\AppCompat\NavigationPageRenderer.cs:1223
09-12 22:30:01.743 I/MonoDroid( 5147): at Android.Views.View.n_OnMeasure_II (System.IntPtr jnienv, System.IntPtr native__this, System.Int32 widthMeasureSpec, System.Int32 heightMeasureSpec) [0x00008] in <7d2292394f8c488b97f5bc2a0ac0240d>:0
09-12 22:30:01.743 I/MonoDroid( 5147): at (wrapper dynamic-method) Android.Runtime.DynamicMethodNameCounter.28(intptr,intptr,int,int)
09-12 22:30:01.746 F/libc ( 5147): Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x6f726578 in tid 5147 (ndem.DoKapsyApp), pid 5147 (ndem.DoKapsyApp)
[HotReload] (2020-09-12 22:30:03.9): INFO: (Tandem.DoKapsyApp.Android) Stopped Hot Reload session due to ExplicitlyEnded ...
@PureWeen I attach all the information that I get from the output window:
09-13 12:37:30.755 I/MonoDroid(21323): UNHANDLED EXCEPTION: 09-13 12:37:30.758 I/MonoDroid(21323): System.ObjectDisposedException: Cannot access a disposed object. 09-13 12:37:30.759 I/MonoDroid(21323): Object name: 'Xamarin.Forms.Platform.Android.Platform+DefaultRenderer'. 09-13 12:37:30.759 I/MonoDroid(21323): at (wrapper dynamic-method) Android.Runtime.DynamicMethodNameCounter.33(intptr,intptr,bool,int,int,int,int) 09-13 12:37:30.759 I/MonoDroid(21323): at (wrapper native-to-managed) Android.Runtime.DynamicMethodNameCounter.33(intptr,intptr,int,int,int,int,int) 09-13 12:37:30.759 I/MonoDroid(21323): at (wrapper managed-to-native) Java.Interop.NativeMethods.java_interop_jnienv_call_nonvirtual_void_method_a(intptr,intptr&,intptr,intptr,intptr,intptr) 09-13 12:37:30.759 I/MonoDroid(21323): at Java.Interop.JniEnvironment+InstanceMethods.CallNonvirtualVoidMethod (Java.Interop.JniObjectReference instance, Java.Interop.JniObjectReference type, Java.Interop.JniMethodInfo method, Java.Interop.JniArgumentValue args) [0x00079] in <42748fcc36b74733af2d9940a8f3cc8e>:0 09-13 12:37:30.759 I/MonoDroid(21323): at Java.Interop.JniPeerMembers+JniInstanceMethods.InvokeVirtualVoidMethod (System.String encodedMember, Java.Interop.IJavaPeerable self, Java.Interop.JniArgumentValue parameters) [0x0005d] in <42748fcc36b74733af2d9940a8f3cc8e>:0 09-13 12:37:30.759 I/MonoDroid(21323): at Xamarin.Forms.Platform.Android.FormsViewGroup.MeasureAndLayout (System.Int32 p0, System.Int32 p1, System.Int32 p2, System.Int32 p3, System.Int32 p4, System.Int32 p5) [0x00088] in D:\agent\1\s\Xamarin.Forms.Platform.Android.FormsViewGroup\obj\Debug\generated\src\Xamarin.Forms.Platform.Android.FormsViewGroup.cs:181 09-13 12:37:30.759 I/MonoDroid(21323): at Xamarin.Forms.Platform.Android.VisualElementTracker.UpdateLayout () [0x0015c] in D:\agent\1\s\Xamarin.Forms.Platform.Android\VisualElementTracker.cs:111 09-13 12:37:30.759 I/MonoDroid(21323): at Xamarin.Forms.Platform.Android.VisualElementRenderer`1[TElement].UpdateLayout () [0x00014] in D:\agent\1\s\Xamarin.Forms.Platform.Android\VisualElementRenderer.cs:139 09-13 12:37:30.759 I/MonoDroid(21323): at Xamarin.Forms.Platform.Android.AppCompat.Platform.Xamarin.Forms.Platform.Android.IPlatformLayout.OnLayout (System.Boolean changed, System.Int32 l, System.Int32 t, System.Int32 r, System.Int32 b) [0x0002f] in D:\agent\1\s\Xamarin.Forms.Platform.Android\AppCompat\Platform.cs:235 09-13 12:37:30.759 I/MonoDroid(21323): at Xamarin.Forms.Platform.Android.PlatformRenderer.OnLayout (System.Boolean changed, System.Int32 l, System.Int32 t, System.Int32 r, System.Int32 b) [0x0001d] in D:\agent\1\s\Xamarin.Forms.Platform.Android\PlatformRenderer.cs:75 09-13 12:37:30.759 I/MonoDroid(21323): at Android.Views.ViewGroup.n_OnLayout_ZIIII (System.IntPtr jnienv, System.IntPtr native__this, System.Boolean changed, System.Int32 l, System.Int32 t, System.Int32 r, System.Int32 b) [0x00008] in <7d2292394f8c488b97f5bc2a0ac0240d>:0 09-13 12:37:30.759 I/MonoDroid(21323): at (wrapper dynamic-method) Android.Runtime.DynamicMethodNameCounter.27(intptr,intptr,bool,int,int,int,int) System.ObjectDisposedException: 'Cannot access a disposed object. Object name: 'Xamarin.Forms.Platform.Android.Platform+DefaultRenderer'.'
09-13 12:37:33.822 E/mono (21323):
09-13 12:37:33.822 E/mono (21323): Unhandled Exception:
09-13 12:37:33.822 E/mono (21323): System.ObjectDisposedException: Cannot access a disposed object.
09-13 12:37:33.822 E/mono (21323): Object name: 'Xamarin.Forms.Platform.Android.Platform+DefaultRenderer'.
09-13 12:37:33.822 E/mono (21323): at (wrapper dynamic-method) Android.Runtime.DynamicMethodNameCounter.33(intptr,intptr,bool,int,int,int,int)
09-13 12:37:33.822 E/mono (21323): at (wrapper native-to-managed) Android.Runtime.DynamicMethodNameCounter.33(intptr,intptr,int,int,int,int,int)
09-13 12:37:33.822 E/mono (21323): at (wrapper managed-to-native) Java.Interop.NativeMethods.java_interop_jnienv_call_nonvirtual_void_method_a(intptr,intptr&,intptr,intptr,intptr,intptr)
09-13 12:37:33.822 E/mono (21323): at Java.Interop.JniEnvironment+InstanceMethods.CallNonvirtualVoidMethod (Java.Interop.JniObjectReference instance, Java.Interop.JniObjectReference type, Java.Interop.JniMethodInfo method, Java.Interop.JniArgumentValue args) [0x00079] in <42748fcc36b74733af2d9940a8f3cc8e>:0
09-13 12:37:33.822 E/mono (21323): at Java.Interop.JniPeerMembers+JniInstanceMethods.InvokeVirtualVoidMethod (System.String encodedMember, Java.Interop.IJavaPeerable self, Java.Interop.JniArgumentValue parameters) [0x0005d] in <42748fcc36b74733af2d9940a8f3cc8e>:0
09-13 12:37:33.822 E/mono (21323): at Xamarin.Forms.Platform.Android.FormsViewGroup.MeasureAndLayout (System.Int32 p0, System.Int32 p1, System.Int32 p2, System.Int32 p3, System.Int32 p4, System.Int32 p5) [0x00088] in D:\agent\1\s\Xamarin.Forms.Platform.Android.FormsViewGroup\obj\Debug\generated\src\Xamarin.Forms.Platform.Android.FormsViewGroup.cs:181
09-13 12:37:33.822 E/mono (21323): at Xamarin.Forms.Platform.Android.VisualElementTracker.UpdateLayout () [0x0015c] in D:\agent\1\s\Xamarin.Forms.Platform.Android\VisualElementTracker.cs:111
09-13 12:37:33.822 E/mono (21323): at Xamarin.Forms.Platform.Android.VisualElementRenderer1[TElement].UpdateLayout () [0x00014] in D:\agent\1\s\Xamarin.Forms.Platform.Android\VisualElementRenderer.cs:139 09-13 12:37:33.822 E/mono (21323): at Xamarin.Forms.Platform.Android.AppCompat.Platform.Xamarin.Forms.Platform.Android.IPlatformLayout.OnLayout (System.Boolean changed, System.Int32 l, System.Int32 t, System.Int32 r, System.Int32 b) [0x0002f] in D:\agent\1\s\Xamarin.Forms.Platform.Android\AppCompat\Platform.cs:235 09-13 12:37:33.822 E/mono (21323): at Xamarin.Forms.Platform.Android.PlatformRenderer.OnLayout (System.Boolean changed, System.Int32 l, System.Int32 t, System.Int32 r, System.Int32 b) [0x0001d] in D:\agent\1\s\Xamarin.Forms.Platform.Android\PlatformRenderer.cs:75 09-13 12:37:33.822 E/mono (21323): at Android.Views.ViewGroup.n_OnLayout_ZIIII (System.IntPtr jnienv, System.IntPtr native__this, System.Boolean changed, System.Int32 l, System.Int32 t, System.Int32 r, System.Int32 b) [0x00008] in <7d2292394f8c488b97f5bc2a0ac0240d>:0 09-13 12:37:33.822 E/mono (21323): at (wrapper dynamic-method) Android.Runtime.DynamicMethodNameCounter.27(intptr,intptr,bool,int,int,int,int) 09-13 12:37:33.822 E/mono (21323): --- End of stack trace from previous location where exception was thrown --- 09-13 12:37:33.822 E/mono (21323): 09-13 12:37:33.822 E/mono (21323): at Java.Interop.JniEnvironment+Strings.NewString (System.Char* unicodeChars, System.Int32 length) [0x0001e] in <42748fcc36b74733af2d9940a8f3cc8e>:0 09-13 12:37:33.822 E/mono (21323): at Java.Interop.JniEnvironment+Strings.NewString (System.String value) [0x00024] in <42748fcc36b74733af2d9940a8f3cc8e>:0 09-13 12:37:33.822 E/mono (21323): at Android.Runtime.JNIEnv.NewString (System.String text) [0x00009] in <7d2292394f8c488b97f5bc2a0ac0240d>:0 09-13 12:37:33.822 E/mono (21323): at Java.Lang.Error..ctor (System.String message) [0x0001f] in <7d2292394f8c488b97f5bc2a0ac0240d>:0 09-13 12:37:33.822 E/mono (21323): at Android.Runtime.JavaProxyThrowable..ctor (System.Exception innerException) [0x00007] in <7d2292394f8c488b97f5bc2a0ac0240d>:0 09-13 12:37:33.822 E/mono (21323): at Java.Lang.Throwable.FromException (System.Exception e) [0x0001d] in <7d2292394f8c488b97f5bc2a0ac0240d>:0 09-13 12:37:33.822 E/mono (21323): at Android.Runtime.AndroidEnvironment.UnhandledException (System.Exception e) [0x00067] in <7d2292394f8c488b97f5bc2a0ac0240d>:0 09-13 12:37:33.822 E/mono (21323): at (wrapper dynamic-method) Android.Runtime.DynamicMethodNameCounter.27(intptr,intptr,bool,int,int,int,int) 09-13 12:37:33.822 E/mono (21323): at (wrapper native-to-managed) Android.Runtime.DynamicMethodNameCounter.27(intptr,intptr,int,int,int,int,int) 09-13 12:37:33.826 E/mono-rt (21323): [ERROR] FATAL UNHANDLED EXCEPTION: System.ObjectDisposedException: Cannot access a disposed object. 09-13 12:37:33.826 E/mono-rt (21323): Object name: 'Xamarin.Forms.Platform.Android.Platform+DefaultRenderer'. 09-13 12:37:33.826 E/mono-rt (21323): at (wrapper dynamic-method) Android.Runtime.DynamicMethodNameCounter.33(intptr,intptr,bool,int,int,int,int) 09-13 12:37:33.826 E/mono-rt (21323): at (wrapper native-to-managed) Android.Runtime.DynamicMethodNameCounter.33(intptr,intptr,int,int,int,int,int) 09-13 12:37:33.826 E/mono-rt (21323): at (wrapper managed-to-native) Java.Interop.NativeMethods.java_interop_jnienv_call_nonvirtual_void_method_a(intptr,intptr&,intptr,intptr,intptr,intptr) 09-13 12:37:33.826 E/mono-rt (21323): at Java.Interop.JniEnvironment+InstanceMethods.CallNonvirtualVoidMethod (Java.Interop.JniObjectReference instance, Java.Interop.JniObjectReference type, Java.Interop.JniMethodInfo method, Java.Interop.JniArgumentValue* args) [0x00079] in <42748fcc36b74733af2d9940a8f3cc8e>:0 09-13 12:37:33.826 E/mono-rt (21323): at Java.Interop.JniPeerMembers+JniInstanceMethods.InvokeVirtualVoidMethod (System.String encodedMember, Java.Interop.IJavaPeerable self, Java.Interop.JniArgumentValue* parameters) [0x0005d] in <42748fcc36b74733af2d9940a8f3cc8e>:0 09-13 12:37:33.826 E/mono-rt (21323): at Xamarin.Forms.Platform.Android.FormsViewGroup.MeasureAndLayout (System.Int32 p0, System.Int32 p1, System.Int32 p2, System.Int32 p3, System.Int32 p4, System.Int32 p5) [0x00088] in D:\agent\1\s\Xamarin.Forms.Platform.Android.FormsViewGroup\obj\Debug\generated\src\Xamarin.Forms.Platform.Android.FormsViewGroup.cs:181 09-13 12:37:33.826 E/mono-rt (21323): at Xamarin.Forms.Platform.Android.VisualElementTracker.UpdateLayout () [0x0015c] in D:\agent\1\s\Xamarin.Forms.Platform.Android\VisualElementTracker.cs:111 09-13 12:37:33.826 E/mono-rt (21323): at Xamarin.Forms.Platform.Android.VisualElementRenderer
1[TElement].UpdateLayout () [0x00014] in D:\agent\1\s\Xamarin.Forms.Platform.Android\VisualElementRenderer.cs:139
09-13 12:37:33.826 E/mono-rt (21323): at Xamarin.Forms.Platform.Android.AppCompat.Platform.Xamarin.Forms.Platform.Android.IPlatformLayout.OnLayout (System.Boolean changed, System.Int32 l, System.Int32 t, System.Int32 r, System.Int32 b) [0x0002f] in D:\agent\1\s\Xamarin.Forms.Platform.Android\AppCompat\Platform.cs:235
09-13 12:37:33.826 E/mono-rt (21323): at Xamarin.Forms.Platform.Android.PlatformRenderer.OnLayout (System.Boolean changed, System.Int32 l, System.Int32 t, System.Int32 r, System.Int32 b) [0x0001d] in D:\agent\1\s\Xamarin.Forms.Platform.Android\PlatformRenderer.cs:75
09-13 12:37:33.826 E/mono-rt (21323): at Android.Views.ViewGroup.n_OnLayout_ZIIII (System.IntPtr jnienv, System.IntPtr native__this, System.Boolean changed, System.Int32 l, System.Int32 t, System.Int32 r, System.Int32 b) [0x00008] in <7d2292394f8c488b97f5bc2a0ac0240d>:0
09-13 12:37:33.826 E/mono-rt (21323): at (wrapper dynamic-method) Android.Runtime.DynamicMethodNameCounter.27(intptr,intptr,bool,int,int,int,int)
09-13 12:37:33.826 E/mono-rt (21323): --- End of stack trace from previous location where exception was thrown ---
09-13 12:37:33.826 E/mono-rt (21323):
09-13 12:37:33.826 E/mono-rt (21323): at Java.Interop.JniEnvironment+Strings.NewString (System.Char* unicodeChars, System.Int32 length) [0x0001e] in <42748fcc36b74733af2d9940a8f3cc8e>:0
09-13 12:37:33.826 E/mono-rt (21323): at Java.Interop.JniEnvironment+Strings.NewString (System.String value) [0x00024] in <42748fcc36b74733af2d9940a8f3cc8e>:0
09-13 12:37:33.826 E/mono-rt (21323): at Android.Runtime.JNIEnv.NewString (System.String text) [0x00009] in <7d2292394f8c488b97f5bc2a0ac0240d>:0
09-13 12:37:33.826 E/mono-rt (21323): at Java.Lang.Error..ctor (System.String message) [0x0001f] in <7d2292394f8c488b97f5bc2a0ac0240d>:0
09-13 12:37:33.826 E/mono-rt (21323): at Android.Runtime.JavaProxyThrowable..ctor (System.Exception innerException) [0x00007] in <7d2292394f8c488b97f5bc2a0ac0240d>:0
09-13 12:37:33.826 E/mono-rt (21323): at Java.Lang.Throwable.FromException (System.Exception e) [0x0001d] in <7d2292394f8c488b97f5bc2a0ac0240d>:0
09-13 12:37:33.826 E/mono-rt (21323): at Android.Runtime.AndroidEnvironment.UnhandledException (System.Exception e) [0x00067] in <7d2292394f8c488b97f5bc2a0ac0240d>:0
09-13 12:37:33.826 E/mono-rt (21323): at (wrapper dynamic-method) Android.Runtime.DynamicMethodNameCounter.27(intptr,intptr,bool,int,int,int,int)terminating
09-13 12:37:33.826 E/mono-rt (21323): at (wrapper native-to-managed) Android.Runtime.DynamicMethodNameCounter.27(intptr,intptr,int,int,int,int,int) 09-13 12:37:33.865 E/libc++abi(21323): terminating 09-13 12:37:33.866 F/libc (21323): Fatal signal 6 (SIGABRT), code -1 (SI_QUEUE) in tid 21323 (ame.labelrender), pid 21323 (ame.labelrender)
@nacompllo @Reveon
Try this one and let me know please!
@nacompllo @Reveon
Try this one and let me know please!
@PureWeen I just did the test with the new nuget and it seems that the problem has been solved no longer reproduces, it seems that this nuget solves this problem. Good work.
@PureWeen I did a quick test and it seems that the exceptions are gone
@PureWeen i also confirm that at the moment my app doesn't fire this exception after quick tests.
Awesome!!
@PureWeen, Exception no longer occurs with nugets provided. Legend.
Can someone explain how to install this "nuget" to Xamarin Forms?
This issue has been moved from a ticket on Developer Community.
After upgrading to the Xamarin Forms 4.6.0726, starting getting frequent intermittent crash on Android. Upon investigation, found that this is coming from Xamarin's LabelRenderer
05-17 07:27:06.656 E/mono ( 5133): 05-17 07:27:06.656 E/mono ( 5133): Unhandled Exception: 05-17 07:27:06.656 E/mono ( 5133): System.ObjectDisposedException: Cannot access a disposed object. 05-17 07:27:06.656 E/mono ( 5133): Object name: 'Xamarin.Forms.Platform.Android.FastRenderers.LabelRenderer'. 05-17 07:27:06.656 E/mono ( 5133): at (wrapper dynamic-method) Android.Runtime.DynamicMethodNameCounter.29(intptr,intptr) 05-17 07:27:06.656 E/mono ( 5133): at (wrapper native-to-managed) Android.Runtime.DynamicMethodNameCounter.29(intptr,intptr) 05-17 07:27:06.656 E/mono-rt ( 5133): [ERROR] FATAL UNHANDLED EXCEPTION: System.ObjectDisposedException: Cannot access a disposed object. 05-17 07:27:06.656 E/mono-rt ( 5133): Object name: 'Xamarin.Forms.Platform.Android.FastRenderers.LabelRenderer'. 05-17 07:27:06.656 E/mono-rt ( 5133): at (wrapper dynamic-method) Android.Runtime.DynamicMethodNameCounter.29(intptr,intptr) 05-17 07:27:06.656 E/mono-rt ( 5133): at (wrapper native-to-managed) Android.Runtime.DynamicMethodNameCounter.29(intptr,intptr) 05-17 07:27:06.698 D/ ( 5133): HostConnection::get() New Host Connection established 0xbd1b1240, tid 5133
Not sure where it is coming from. I have ListView as main view and wondering something is wrong with newer version of ListView causing leak and crash.
I don't have a custom label renderer so it has to be coming from Xamarin's platform renderer Please suggest.
Original Comments
Visual Studio Feedback System on 5/17/2020, 11:54 PM:
We have directed your feedback to the appropriate engineering team for further evaluation. The team will review the feedback and notify you about the next steps.
Original Solutions
(no solutions)