I have my app running on Windows and iOS fine. On Android (12,13 and 14) the chat window does not respond after 10 seconds.
The chat control is bound it an ObservableCollection of TextMessage objects. The collections updated when I get a network message from SignalR on another thread.
The chat control is the only thing on the page and its inside a grid. Very simple.
The version of the chat control is : 25.2.7
I am using .NET Maui 8 with VS 2022, everything is up to date.
In the output window I consistently get a stream like:
t.rivur.androi] Explicit concurrent copying GC freed 11365(784KB) AllocSpace objects, 4(272KB) LOS objects, 49% free, 7392KB/14MB, paused 587us,73us total 19.816ms
[t.rivur.androi] Explicit concurrent copying GC freed 4358(249KB) AllocSpace objects, 0(0B) LOS objects, 49% free, 7496KB/14MB, paused 483us,79us total 21.012ms
When the control loads I get an output dump like:
[OpenGLRenderer] Davey! duration=738ms; Flags=0, FrameTimelineVsyncId=303071, IntendedVsync=34390207339798, Vsync=34390907339770, InputEventId=563140287, HandleInputStart=34390913363300, AnimationStart=34390913393600, PerformTraversalsStart=34390913440200, DrawStart=34390928864200, FrameDeadline=34390224006464, FrameInterval=34390913274600, FrameStartTime=16666666, SyncQueued=34390939017800, SyncStart=34390939233100, IssueDrawCommandsStart=34390939485700, SwapBuffers=34390943980500, FrameCompleted=34390945781400, DequeueBufferDuration=27200, QueueBufferDuration=1154600, GpuCompleted=34390945645900, SwapBuffersCompleted=34390945781400, DisplayPresentTime=-4294967296,
[MaterialButton] MaterialButton manages its own background to control elevation, shape, color and states. Consider using backgroundTint, shapeAppearance and other attributes where available. A custom background will ignore these attributes and you should consider handling interaction states such as pressed, focused and disabled
[MaterialButton] MaterialButton manages its own background to control elevation, shape, color and states. Consider using backgroundTint, shapeAppearance and other attributes where available. A custom background will ignore these attributes and you should consider handling interaction states such as pressed, focused and disabled
[MaterialButton] MaterialButton manages its own background to control elevation, shape, color and states. Consider using backgroundTint, shapeAppearance and other attributes where available. A custom background will ignore these attributes and you should consider handling interaction states such as pressed, focused and disabled
[MaterialButton] MaterialButton manages its own background to control elevation, shape, color and states. Consider using backgroundTint, shapeAppearance and other attributes where available. A custom background will ignore these attributes and you should consider handling interaction states such as pressed, focused and disabled
[MaterialButton] MaterialButton manages its own background to control elevation, shape, color and states. Consider using backgroundTint, shapeAppearance and other attributes where available. A custom background will ignore these attributes and you should consider handling interaction states such as pressed, focused and disabled
[MaterialButton] MaterialButton manages its own background to control elevation, shape, color and states. Consider using backgroundTint, shapeAppearance and other attributes where available. A custom background will ignore these attributes and you should consider handling interaction states such as pressed, focused and disabled
[MaterialButton] MaterialButton manages its own background to control elevation, shape, color and states. Consider using backgroundTint, shapeAppearance and other attributes where available. A custom background will ignore these attributes and you should consider handling interaction states such as pressed, focused and disabled
[MaterialButton] MaterialButton manages its own background to control elevation, shape, color and states. Consider using backgroundTint, shapeAppearance and other attributes where available. A custom background will ignore these attributes and you should consider handling interaction states such as pressed, focused and disabled
[MaterialButton] MaterialButton manages its own background to control elevation, shape, color and states. Consider using backgroundTint, shapeAppearance and other attributes where available. A custom background will ignore these attributes and you should consider handling interaction states such as pressed, focused and disabled
[MaterialButton] MaterialButton manages its own background to control elevation, shape, color and states. Consider using backgroundTint, shapeAppearance and other attributes where available. A custom background will ignore these attributes and you should consider handling interaction states such as pressed, focused and disabled
[MaterialButton] MaterialButton manages its own background to control elevation, shape, color and states. Consider using backgroundTint, shapeAppearance and other attributes where available. A custom background will ignore these attributes and you should consider handling interaction states such as pressed, focused and disabled
[MaterialButton] MaterialButton manages its own background to control elevation, shape, color and states. Consider using backgroundTint, shapeAppearance and other attributes where available. A custom background will ignore these attributes and you should consider handling interaction states such as pressed, focused and disabled
[MaterialButton] MaterialButton manages its own background to control elevation, shape, color and states. Consider using backgroundTint, shapeAppearance and other attributes where available. A custom background will ignore these attributes and you should consider handling interaction states such as pressed, focused and disabled
[t.rivur.androi] Explicit concurrent copying GC freed 8639(2898KB) AllocSpace objects, 6(120KB) LOS objects, 49% free, 6335KB/12MB, paused 480us,76us total 18.254ms
[t.rivur.androi] Explicit concurrent copying GC freed 4151(152KB) AllocSpace objects, 0(0B) LOS objects, 49% free, 6486KB/12MB, paused 473us,70us total 16.255ms
[t.rivur.androi] Explicit concurrent copying GC freed 1461(56KB) AllocSpace objects, 0(0B) LOS objects, 49% free, 6718KB/13MB, paused 623us,378us total 19.717ms
[t.rivur.androi] Explicit concurrent copying GC freed 235(44KB) AllocSpace objects, 0(0B) LOS objects, 49% free, 6753KB/13MB, paused 541us,72us total 18.659ms
[View] requestLayout() improperly called by crc6486af4e8104107bae.LayoutViewGroupExt{be1d57b V.ED..... ......ID 0,114-1080,260} during layout: running second layout pass
[View] requestLayout() improperly called by crc6452ffdc5b34af3a0f.ContentViewGroup{9cabf05 V.E...... ......I. 0,0-0,0} during layout: running second layout pass
[View] requestLayout() improperly called by crc6452ffdc5b34af3a0f.ContentViewGroup{1bd4681 V.E...... ......I. 0,0-0,0} during layout: running second layout pass
[View] requestLayout() improperly called by crc6452ffdc5b34af3a0f.ContentViewGroup{563d1f1 V.E...... ......I. 0,0-0,0} during layout: running second layout pass
[View] requestLayout() improperly called by crc6452ffdc5b34af3a0f.MauiTextView{70dca59 V.ED..... ......ID 0,1-394,50} during layout: running second layout pass
[View] requestLayout() improperly called by crc6452ffdc5b34af3a0f.MauiTextView{7a8fbc9 V.ED..... ......ID 0,0-32,51} during layout: running second layout pass
[View] requestLayout() improperly called by crc6486af4e8104107bae.LayoutViewGroupExt{dc888df V.ED..... ......ID 0,1653-1080,1824} during layout: running second layout pass
[View] requestLayout() improperly called by crc6452ffdc5b34af3a0f.MauiTextView{b562927 V.ED..... ......ID 0,1-394,50} during layout: running second layout pass
[View] requestLayout() improperly called by crc6452ffdc5b34af3a0f.MauiTextView{585aa17 V.ED..... ......ID 0,0-65,51} during layout: running second layout pass
[View] requestLayout() improperly called by crc6486af4e8104107bae.LayoutViewGroupExt{4c0dff8 V.ED..... ......I. 0,0-0,0} during layout: running second layout pass
[View] requestLayout() improperly called by crc6452ffdc5b34af3a0f.ContentViewGroup{ca06ec3 V.E...... ......I. 0,0-0,0} during layout: running second layout pass
[View] requestLayout() improperly called by crc6452ffdc5b34af3a0f.ContentViewGroup{415357a V.E...... ......I. 0,0-0,0} during layout: running second layout pass
[View] requestLayout() improperly called by crc6452ffdc5b34af3a0f.ContentViewGroup{e312f46 V.E...... ......I. 0,0-0,0} during layout: running second layout pass
[View] requestLayout() improperly called by crc6452ffdc5b34af3a0f.ContentViewGroup{f49f5f6 V.E...... ......I. 0,0-0,0} during layout: running second layout pass
[View] requestLayout() improperly called by crc6486af4e8104107bae.LayoutViewGroupExt{fa9c932 V.ED..... ......I. 0,0-0,0} during layout: running second layout pass
[View] requestLayout() improperly called by crc6452ffdc5b34af3a0f.ContentViewGroup{d151765 V.E...... ......I. 0,0-0,0} during layout: running second layout pass
[View] requestLayout() improperly called by crc6452ffdc5b34af3a0f.ContentViewGroup{946a524 V.E...... ......I. 0,0-0,0} during layout: running second layout pass
[View] requestLayout() improperly called by crc6452ffdc5b34af3a0f.ContentViewGroup{6daef90 V.E...... ......I. 0,0-0,0} during layout: running second layout pass
[View] requestLayout() improperly called by crc6452ffdc5b34af3a0f.ContentViewGroup{d915cc0 V.E...... ......I. 0,0-0,0} during layout: running second layout pass
[View] requestLayout() improperly called by crc6486af4e8104107bae.LayoutViewGroupExt{ff4011c V.ED..... ......I. 0,0-0,0} during layout: running second layout pass
[View] requestLayout() improperly called by crc6452ffdc5b34af3a0f.ContentViewGroup{c749577 V.E...... ......I. 0,0-0,0} during layout: running second layout pass
[View] requestLayout() improperly called by crc6452ffdc5b34af3a0f.ContentViewGroup{d1ebbfe V.E...... ......I. 0,0-0,0} during layout: running second layout pass
[View] requestLayout() improperly called by crc6452ffdc5b34af3a0f.ContentViewGroup{a69a0a V.E...... ......I. 0,0-0,0} during layout: running second layout pass
[View] requestLayout() improperly called by crc6452ffdc5b34af3a0f.ContentViewGroup{c2199ba V.E...... ......I. 0,0-0,0} during layout: running second layout pass
[View] requestLayout() improperly called by crc6486af4e8104107bae.LayoutViewGroupExt{8e2ee36 V.ED..... ......I. 0,0-0,0} during layout: running second layout pass
[View] requestLayout() improperly called by crc6452ffdc5b34af3a0f.ContentViewGroup{42c8979 V.E...... ......I. 0,0-0,0} during layout: running second layout pass
[View] requestLayout() improperly called by crc6452ffdc5b34af3a0f.ContentViewGroup{e38bc88 V.E...... ......I. 0,0-0,0} during layout: running second layout pass
[View] requestLayout() improperly called by crc6452ffdc5b34af3a0f.ContentViewGroup{8e11934 V.E...... ......I. 0,0-0,0} during layout: running second layout pass
[View] requestLayout() improperly called by crc6452ffdc5b34af3a0f.ContentViewGroup{c973764 V.E...... ......I. 0,0-0,0} during layout: running second layout pass
[View] requestLayout() improperly called by crc6486af4e8104107bae.LayoutViewGroupExt{9086e5d V.ED..... ......ID 0,279-1080,852} during layout: running second layout pass
[View] requestLayout() improperly called by crc6452ffdc5b34af3a0f.ContentViewGroup{1f2e78a V.E...... ......I. 0,0-0,0} during layout: running second layout pass
[View] requestLayout() improperly called by crc6452ffdc5b34af3a0f.ContentViewGroup{19ff256 V.E...... ......I. 0,0-0,0} during layout: running second layout pass
[View] requestLayout() improperly called by crc6452ffdc5b34af3a0f.ContentViewGroup{512f62e V.E...... ......I. 0,0-0,0} during layout: running second layout pass
[View] requestLayout() improperly called by androidx.appcompat.widget.AppCompatImageView{259bf51 V.ED..... ......I. 0,0-0,0} during layout: running second layout pass
[View] requestLayout() improperly called by crc6452ffdc5b34af3a0f.ContentViewGroup{80ab953 V.E...... ......I. 0,0-0,0} during layout: running second layout pass
[t.rivur.androi] Explicit concurrent copying GC freed 2205(190KB) AllocSpace objects, 0(0B) LOS objects, 49% free, 6835KB/13MB, paused 1.826ms,74us total 26.241ms
Any suggestions?
Thanks.
Hi Ryan Groom,
We have reviewed your requirements and examined the crash details you provided. It appears that there may be a thread mismatch issue when updating the items. Therefore, we recommend updating the collection using SignalR. For further guidance, please refer to the code snippet provided below.
public void GenerateMessages() { chat.Dispatcher.Dispatch(() => { // update the collection }); }
|
Please let us know if you have any concerns.
Regards,
Suthi Yuvaraj
That did not fix it.
This was for version 25.2.7 It was the ShowTimeBreak="True" . If set to false it would not happen, set to "true", hang in about a minute or less.
Upgraded to 26.1.35 and that fixed the problem.
Thanks,
Ryan
Ryan Groom,
Thanks for the update. Please check at your end. We will wait to hear from you. Please let us know if you require any additional assistance.
That is correct. ShowTimeBreak="True" was causing the issue. Setting to false fixed it and upgrading to 26.1.35 and going back to "True" now works. So the new version fixes the issue.
~R
Ryan Groom,
We are glad to know that the reported problem has been resolved. Please let us know if you have any further queries on this. We are happy to help.