dotnet / maui-samples

Samples for .NET Multi-Platform App UI (.NET MAUI)
https://dot.net/maui
MIT License
2.99k stars 1.24k forks source link

FlexLayoutDemos: "Photo Wrapping" sample broken #244

Closed mattjohnsonpint closed 1 year ago

mattjohnsonpint commented 1 year ago

Build the FlexLayoutDemos and run them in an iOS simulator and in an Android emulator. When the app starts, click "Photo wrapping".

On iOS, the screen is empty white:

image

Click "< Back" at the top, then click "Photo wrapping" again, and the page is now loaded with image - except they are all very tiny and in one big vertical stack. There is no scrolling behavior.

image

On Android, the page initially loads while rendering the results - again in one big vertical stack. But then the app hangs and crashes without any logged exceptions.

adb logcat shows:

2022-08-02 16:48:06.740 29747-29747/? I/flexlayoutdemo: Late-enabling -Xcheck:jni
2022-08-02 16:48:06.771 29747-29747/com.companyname.flexlayoutdemos D/CompatibilityChangeReporter: Compat change id reported: 171979766; UID 10147; state: ENABLED
2022-08-02 16:48:06.913 29747-29747/com.companyname.flexlayoutdemos V/GraphicsEnvironment: ANGLE Developer option for 'com.companyname.flexlayoutdemos' set to: 'default'
2022-08-02 16:48:06.914 29747-29747/com.companyname.flexlayoutdemos V/GraphicsEnvironment: Neither updatable production driver nor prerelease driver is supported.
2022-08-02 16:48:06.915 29747-29747/com.companyname.flexlayoutdemos D/NetworkSecurityConfig: No Network Security Config specified, using platform default
2022-08-02 16:48:06.916 29747-29747/com.companyname.flexlayoutdemos D/NetworkSecurityConfig: No Network Security Config specified, using platform default
2022-08-02 16:48:06.920 29747-29747/com.companyname.flexlayoutdemos D/debug-app-helper: Checking if libmonodroid was unpacked to /data/app/~~lOpjD_0tP0B9zb4vac6u0g==/com.companyname.flexlayoutdemos-K6PgmABoy1h-rm4d20NYJQ==/lib/arm64/libmonodroid.so
2022-08-02 16:48:06.920 29747-29747/com.companyname.flexlayoutdemos D/debug-app-helper: Native libs extracted to /data/app/~~lOpjD_0tP0B9zb4vac6u0g==/com.companyname.flexlayoutdemos-K6PgmABoy1h-rm4d20NYJQ==/lib/arm64, assuming application/android:extractNativeLibs == true
2022-08-02 16:48:06.920 29747-29747/com.companyname.flexlayoutdemos I/debug-app-helper: Setting up for DSO lookup in app data directories
2022-08-02 16:48:06.920 29747-29747/com.companyname.flexlayoutdemos D/debug-app-helper: Added filesystem DSO lookup location: /data/app/~~lOpjD_0tP0B9zb4vac6u0g==/com.companyname.flexlayoutdemos-K6PgmABoy1h-rm4d20NYJQ==/lib/arm64
2022-08-02 16:48:06.920 29747-29747/com.companyname.flexlayoutdemos W/debug-app-helper: Using runtime path: /data/app/~~lOpjD_0tP0B9zb4vac6u0g==/com.companyname.flexlayoutdemos-K6PgmABoy1h-rm4d20NYJQ==/lib/arm64
2022-08-02 16:48:06.920 29747-29747/com.companyname.flexlayoutdemos W/debug-app-helper: checking directory: `/data/user/0/com.companyname.flexlayoutdemos/files/.__override__/lib`
2022-08-02 16:48:06.920 29747-29747/com.companyname.flexlayoutdemos W/debug-app-helper: directory does not exist: `/data/user/0/com.companyname.flexlayoutdemos/files/.__override__/lib`
2022-08-02 16:48:06.920 29747-29747/com.companyname.flexlayoutdemos W/debug-app-helper: Checking whether Mono runtime exists at: /data/user/0/com.companyname.flexlayoutdemos/files/.__override__/libmonosgen-2.0.so
2022-08-02 16:48:06.920 29747-29747/com.companyname.flexlayoutdemos W/debug-app-helper: Checking whether Mono runtime exists at: /data/app/~~lOpjD_0tP0B9zb4vac6u0g==/com.companyname.flexlayoutdemos-K6PgmABoy1h-rm4d20NYJQ==/lib/arm64/libmonosgen-2.0.so
2022-08-02 16:48:06.920 29747-29747/com.companyname.flexlayoutdemos I/debug-app-helper: Mono runtime found at: /data/app/~~lOpjD_0tP0B9zb4vac6u0g==/com.companyname.flexlayoutdemos-K6PgmABoy1h-rm4d20NYJQ==/lib/arm64/libmonosgen-2.0.so
2022-08-02 16:48:06.920 29747-29747/com.companyname.flexlayoutdemos W/flexlayoutdemo: Attempt to remove non-JNI local reference, dumping thread
2022-08-02 16:48:06.922 29747-29747/com.companyname.flexlayoutdemos I/DOTNET: JNI_OnLoad: JNI_OnLoad in pal_jni.c
2022-08-02 16:48:06.923 29747-29747/com.companyname.flexlayoutdemos W/monodroid: Creating public update directory: `/data/user/0/com.companyname.flexlayoutdemos/files/.__override__`
2022-08-02 16:48:06.924 29747-29747/com.companyname.flexlayoutdemos W/flexlayoutdemo: Attempt to remove non-JNI local reference, dumping thread
2022-08-02 16:48:06.924 29747-29747/com.companyname.flexlayoutdemos W/monodroid-debug: Trying to initialize the debugger with options: --debugger-agent=transport=dt_socket,loglevel=0,address=127.0.0.1:8791,server=y,embedding=1
2022-08-02 16:48:07.624 29747-29747/com.companyname.flexlayoutdemos W/monodroid-debug: Accepted stdout connection: 61
2022-08-02 16:48:08.461 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly FlexLayoutDemos.dll
2022-08-02 16:48:08.462 29747-29747/com.companyname.flexlayoutdemos W/monodroid-gc: GREF GC Threshold: 46080
2022-08-02 16:48:08.462 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly Mono.Android.dll
2022-08-02 16:48:08.463 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly System.Runtime.dll
2022-08-02 16:48:08.464 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly Java.Interop.dll
2022-08-02 16:48:08.465 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly System.Collections.dll
2022-08-02 16:48:08.807 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly System.Threading.dll
2022-08-02 16:48:08.815 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly System.Runtime.InteropServices.dll
2022-08-02 16:48:08.823 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly System.Threading.Thread.dll
2022-08-02 16:48:08.823 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly System.Diagnostics.StackTrace.dll
2022-08-02 16:48:08.838 29747-29747/com.companyname.flexlayoutdemos W/flexlayoutdemo: Attempt to remove non-JNI local reference, dumping thread
2022-08-02 16:48:08.838 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly Microsoft.Maui.dll
2022-08-02 16:48:08.856 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly System.Memory.dll
2022-08-02 16:48:08.865 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly System.ComponentModel.dll
2022-08-02 16:48:08.872 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly System.Reflection.Emit.Lightweight.dll
2022-08-02 16:48:08.873 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly System.Reflection.Emit.ILGeneration.dll
2022-08-02 16:48:08.873 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly System.Reflection.Primitives.dll
2022-08-02 16:48:08.893 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly System.Runtime.CompilerServices.Unsafe.dll
2022-08-02 16:48:08.904 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly Microsoft.Maui.Essentials.dll
2022-08-02 16:48:08.904 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly Xamarin.AndroidX.Core.dll
2022-08-02 16:48:08.942 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly Microsoft.Extensions.DependencyInjection.Abstractions.dll
2022-08-02 16:48:08.954 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly Microsoft.Maui.Controls.dll
2022-08-02 16:48:08.955 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly System.ObjectModel.dll
2022-08-02 16:48:08.955 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly Microsoft.Maui.Controls.Xaml.dll
2022-08-02 16:48:08.955 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly Microsoft.Extensions.Configuration.dll
2022-08-02 16:48:08.955 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly netstandard.dll
2022-08-02 16:48:08.956 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly Microsoft.Extensions.Configuration.Abstractions.dll
2022-08-02 16:48:08.956 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly Microsoft.Extensions.Logging.dll
2022-08-02 16:48:09.016 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly Microsoft.Maui.Graphics.dll
2022-08-02 16:48:09.017 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly Microsoft.Extensions.Logging.Abstractions.dll
2022-08-02 16:48:09.036 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly Xamarin.AndroidX.AppCompat.dll
2022-08-02 16:48:09.036 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly Xamarin.Google.Android.Material.dll
2022-08-02 16:48:09.038 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly Xamarin.AndroidX.SwipeRefreshLayout.dll
2022-08-02 16:48:09.087 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly System.ComponentModel.TypeConverter.dll
2022-08-02 16:48:09.097 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly System.Private.Uri.dll
2022-08-02 16:48:09.111 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly System.Collections.Concurrent.dll
2022-08-02 16:48:09.122 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly System.Linq.dll
2022-08-02 16:48:09.135 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly Xamarin.AndroidX.Fragment.dll
2022-08-02 16:48:09.135 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly Xamarin.AndroidX.Activity.dll
2022-08-02 16:48:09.135 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly Xamarin.AndroidX.Lifecycle.ViewModel.dll
2022-08-02 16:48:09.135 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly Xamarin.AndroidX.Lifecycle.Common.dll
2022-08-02 16:48:09.136 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly Xamarin.AndroidX.SavedState.dll
2022-08-02 16:48:09.173 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly Xamarin.AndroidX.DrawerLayout.dll
2022-08-02 16:48:09.173 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly Xamarin.AndroidX.CustomView.dll
2022-08-02 16:48:09.173 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly Xamarin.AndroidX.Navigation.Runtime.dll
2022-08-02 16:48:09.201 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly System.Net.Primitives.dll
2022-08-02 16:48:09.209 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly Microsoft.Extensions.DependencyInjection.dll
2022-08-02 16:48:09.217 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly System.Diagnostics.Tracing.dll
2022-08-02 16:48:09.241 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly System.Xml.ReaderWriter.dll
2022-08-02 16:48:09.241 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly System.Private.Xml.dll
2022-08-02 16:48:09.273 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly System.Text.Encoding.Extensions.dll
2022-08-02 16:48:09.283 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly System.Text.RegularExpressions.dll
2022-08-02 16:48:09.312 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly System.Runtime.Loader.dll
2022-08-02 16:48:09.343 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly System.Numerics.Vectors.dll
2022-08-02 16:48:09.437 29747-29747/com.companyname.flexlayoutdemos I/flexlayoutdemo: Explicit concurrent copying GC freed 478(77KB) AllocSpace objects, 0(0B) LOS objects, 24% free, 1970KB/2626KB, paused 9us,2us total 1.651ms
2022-08-02 16:48:09.638 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly Xamarin.AndroidX.RecyclerView.dll
2022-08-02 16:48:09.641 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly Xamarin.AndroidX.CardView.dll
2022-08-02 16:48:09.671 29747-29776/com.companyname.flexlayoutdemos D/libEGL: loaded /vendor/lib64/egl/libEGL_emulation.so
2022-08-02 16:48:09.672 29747-29776/com.companyname.flexlayoutdemos D/libEGL: loaded /vendor/lib64/egl/libGLESv1_CM_emulation.so
2022-08-02 16:48:09.673 29747-29776/com.companyname.flexlayoutdemos D/libEGL: loaded /vendor/lib64/egl/libGLESv2_emulation.so
2022-08-02 16:48:09.674 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly Xamarin.AndroidX.Loader.dll
2022-08-02 16:48:09.695 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly Microsoft.Maui.Controls.Compatibility.dll
2022-08-02 16:48:09.727 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly Xamarin.AndroidX.CoordinatorLayout.dll
2022-08-02 16:48:09.758 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly Xamarin.AndroidX.Lifecycle.LiveData.Core.dll
2022-08-02 16:48:09.772 29747-29747/com.companyname.flexlayoutdemos W/flexlayoutdemo: Accessing hidden method Landroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z (unsupported, reflection, allowed)
2022-08-02 16:48:09.773 29747-29747/com.companyname.flexlayoutdemos W/flexlayoutdemo: Accessing hidden method Landroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V (unsupported, reflection, allowed)
2022-08-02 16:48:09.796 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly Xamarin.AndroidX.ViewPager2.dll
2022-08-02 16:48:09.820 29747-29747/com.companyname.flexlayoutdemos D/CompatibilityChangeReporter: Compat change id reported: 171228096; UID 10147; state: ENABLED
2022-08-02 16:48:09.822 29747-29747/com.companyname.flexlayoutdemos W/TabLayout: MODE_SCROLLABLE + GRAVITY_FILL is not supported, GRAVITY_START will be used instead
2022-08-02 16:48:09.824 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly Xamarin.AndroidX.Lifecycle.Runtime.dll
2022-08-02 16:48:09.847 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly Xamarin.AndroidX.ViewPager.dll
2022-08-02 16:48:09.926 29747-29774/com.companyname.flexlayoutdemos D/HostConnection: createUnique: call
2022-08-02 16:48:09.926 29747-29774/com.companyname.flexlayoutdemos D/HostConnection: HostConnection::get() New Host Connection established 0xb400007af3ce9990, tid 29774
2022-08-02 16:48:09.927 29747-29774/com.companyname.flexlayoutdemos D/HostConnection: HostComposition ext ANDROID_EMU_CHECKSUM_HELPER_v1 ANDROID_EMU_native_sync_v2 ANDROID_EMU_native_sync_v3 ANDROID_EMU_native_sync_v4 ANDROID_EMU_dma_v1 ANDROID_EMU_direct_mem ANDROID_EMU_host_composition_v1 ANDROID_EMU_host_composition_v2 ANDROID_EMU_vulkan ANDROID_EMU_deferred_vulkan_commands ANDROID_EMU_vulkan_null_optional_strings ANDROID_EMU_vulkan_create_resources_with_requirements ANDROID_EMU_YUV_Cache ANDROID_EMU_vulkan_ignored_handles ANDROID_EMU_has_shared_slots_host_memory_allocator ANDROID_EMU_vulkan_free_memory_sync ANDROID_EMU_vulkan_shader_float16_int8 ANDROID_EMU_vulkan_async_queue_submit ANDROID_EMU_vulkan_queue_submit_with_commands ANDROID_EMU_sync_buffer_data ANDROID_EMU_read_color_buffer_dma GL_OES_EGL_image_external_essl3 GL_OES_vertex_array_object GL_KHR_texture_compression_astc_ldr ANDROID_EMU_host_side_tracing ANDROID_EMU_gles_max_version_3_0 
2022-08-02 16:48:09.929 29747-29774/com.companyname.flexlayoutdemos W/OpenGLRenderer: Failed to choose config with EGL_SWAP_BEHAVIOR_PRESERVED, retrying without...
2022-08-02 16:48:09.929 29747-29774/com.companyname.flexlayoutdemos W/OpenGLRenderer: Failed to initialize 101010-2 format, error = EGL_SUCCESS
2022-08-02 16:48:09.930 29747-29774/com.companyname.flexlayoutdemos D/EGL_emulation: eglCreateContext: 0xb400007af3cea1d0: maj 3 min 0 rcv 3
2022-08-02 16:48:09.930 29747-29774/com.companyname.flexlayoutdemos D/EGL_emulation: eglMakeCurrent: 0xb400007af3cea1d0: ver 3 0 (tinfo 0x7d14ac4080) (first time)
2022-08-02 16:48:09.934 29747-29774/com.companyname.flexlayoutdemos I/Gralloc4: mapper 4.x is not supported
2022-08-02 16:48:09.935 29747-29774/com.companyname.flexlayoutdemos D/HostConnection: createUnique: call
2022-08-02 16:48:09.935 29747-29774/com.companyname.flexlayoutdemos D/HostConnection: HostConnection::get() New Host Connection established 0xb400007af3ceac50, tid 29774
2022-08-02 16:48:09.935 29747-29774/com.companyname.flexlayoutdemos D/goldfish-address-space: allocate: Ask for block of size 0x100
2022-08-02 16:48:09.936 29747-29774/com.companyname.flexlayoutdemos D/goldfish-address-space: allocate: ioctl allocate returned offset 0x1f3ff8000 size 0x8000
2022-08-02 16:48:09.936 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly System.Linq.Expressions.dll
2022-08-02 16:48:09.936 29747-29774/com.companyname.flexlayoutdemos W/Gralloc4: allocator 4.x is not supported
2022-08-02 16:48:09.939 29747-29774/com.companyname.flexlayoutdemos D/HostConnection: HostComposition ext ANDROID_EMU_CHECKSUM_HELPER_v1 ANDROID_EMU_native_sync_v2 ANDROID_EMU_native_sync_v3 ANDROID_EMU_native_sync_v4 ANDROID_EMU_dma_v1 ANDROID_EMU_direct_mem ANDROID_EMU_host_composition_v1 ANDROID_EMU_host_composition_v2 ANDROID_EMU_vulkan ANDROID_EMU_deferred_vulkan_commands ANDROID_EMU_vulkan_null_optional_strings ANDROID_EMU_vulkan_create_resources_with_requirements ANDROID_EMU_YUV_Cache ANDROID_EMU_vulkan_ignored_handles ANDROID_EMU_has_shared_slots_host_memory_allocator ANDROID_EMU_vulkan_free_memory_sync ANDROID_EMU_vulkan_shader_float16_int8 ANDROID_EMU_vulkan_async_queue_submit ANDROID_EMU_vulkan_queue_submit_with_commands ANDROID_EMU_sync_buffer_data ANDROID_EMU_read_color_buffer_dma GL_OES_EGL_image_external_essl3 GL_OES_vertex_array_object GL_KHR_texture_compression_astc_ldr ANDROID_EMU_host_side_tracing ANDROID_EMU_gles_max_version_3_0 
2022-08-02 16:48:11.538 29747-29774/com.companyname.flexlayoutdemos D/EGL_emulation: app_time_stats: avg=372.45ms min=7.71ms max=1083.42ms count=4
2022-08-02 16:48:20.309 29747-29774/com.companyname.flexlayoutdemos D/EGL_emulation: app_time_stats: avg=515.97ms min=15.04ms max=8506.63ms count=17
2022-08-02 16:48:20.339 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly System.Net.Http.dll
2022-08-02 16:48:20.339 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly System.Text.Json.dll
2022-08-02 16:48:20.394 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly System.Text.Encodings.Web.dll
2022-08-02 16:48:20.412 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly System.Security.Cryptography.X509Certificates.dll
2022-08-02 16:48:20.423 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly System.Diagnostics.DiagnosticSource.dll
2022-08-02 16:48:20.431 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly System.Collections.NonGeneric.dll
2022-08-02 16:48:20.437 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly System.Net.Requests.dll
2022-08-02 16:48:20.523 29747-29747/com.companyname.flexlayoutdemos I/flexlayoutdemo: Explicit concurrent copying GC freed 3656(344KB) AllocSpace objects, 0(0B) LOS objects, 49% free, 4121KB/8243KB, paused 10us,5us total 4.700ms
2022-08-02 16:48:20.558 29747-29790/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly System.IO.Compression.dll
2022-08-02 16:48:20.623 29747-29747/com.companyname.flexlayoutdemos W/monodroid-assembly: open_from_bundles: failed to load assembly System.Runtime.Intrinsics.dll
2022-08-02 16:48:20.794 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.795 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.796 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.796 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.796 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.796 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.797 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.797 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.797 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.797 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.797 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.797 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.797 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.797 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.797 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.797 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.797 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.797 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.797 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.797 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.797 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.797 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.797 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.797 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.797 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.797 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.798 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.798 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.798 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.798 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.798 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.798 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.798 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.798 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.798 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.798 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.798 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.798 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.798 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.798 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.798 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.799 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.799 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.799 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.799 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.799 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.799 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.799 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.799 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.799 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.799 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.799 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.799 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.799 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.799 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.799 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.799 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.799 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.800 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.800 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.800 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.800 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.800 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.800 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.800 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.801 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.801 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.801 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.801 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:20.801 29747-29747/com.companyname.flexlayoutdemos I/CustomViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension, or use .override() with fixed dimensions.
2022-08-02 16:48:21.382 29747-29774/com.companyname.flexlayoutdemos D/EGL_emulation: app_time_stats: avg=25.64ms min=1.56ms max=186.78ms count=36
2022-08-02 16:48:22.411 29747-29774/com.companyname.flexlayoutdemos D/EGL_emulation: app_time_stats: avg=508.77ms min=219.68ms max=797.87ms count=2
2022-08-02 16:48:23.069 29747-29747/com.companyname.flexlayoutdemos I/Choreographer: Skipped 66 frames!  The application may be doing too much work on its main thread.
2022-08-02 16:48:24.394 29747-29774/com.companyname.flexlayoutdemos D/EGL_emulation: app_time_stats: avg=1973.05ms min=1973.05ms max=1973.05ms count=1
2022-08-02 16:48:24.408 29747-29757/com.companyname.flexlayoutdemos I/flexlayoutdemo: NativeAlloc concurrent copying GC freed 326(72KB) AllocSpace objects, 2(136KB) LOS objects, 49% free, 4892KB/9784KB, paused 50us,1.188ms total 211.640ms
2022-08-02 16:48:25.946 29747-29747/com.companyname.flexlayoutdemos I/Choreographer: Skipped 89 frames!  The application may be doing too much work on its main thread.
2022-08-02 16:48:26.006 29747-29757/com.companyname.flexlayoutdemos W/flexlayoutdemo: Suspending all threads took: 21.163ms
2022-08-02 16:48:26.073 29747-29757/com.companyname.flexlayoutdemos I/flexlayoutdemo: NativeAlloc concurrent copying GC freed 196(60KB) AllocSpace objects, 1(68KB) LOS objects, 49% free, 4936KB/9873KB, paused 1.506ms,26.352ms total 364.148ms
mattjohnsonpint commented 1 year ago

Workaround:

Where the image is loaded here:

https://github.com/dotnet/maui-samples/blob/768d9d0458dfc253fe436788afe31b9d46a198f4/6.0/UserInterface/Layouts/FlexLayoutDemos/FlexLayoutDemos/Views/PhotoWrappingPage.xaml.cs#L42-L46

Specify a width and height request.

Image image = new Image
{
    Source = ImageSource.FromUri(new Uri(photoUri)),
    WidthRequest = 100,
    HeightRequest = 100
};

Then everything loads and scrolls as expected.

image

That works in Android as well, and prevents the crash.

Is this a bug in the sample, or a bug in MAUI?

davidbritch commented 1 year ago

Hi @mattjohnsonpint

Agreed about the photos on iOS and Android, although the latest MAUI release for iOS does produce a slightly different result. Windows does the best job of displaying the photos, without setting any dimensions, but still gives a weird result

Its bugs in MAUI - the identical sample runs in Xamarin.Forms just fine. But I'll update the sample with your suggestion, which is sensible anyway (controlling the image size yourself), so thanks for reporting this.